我跟进了一个教程,以了解有关php的更多信息,在它的源代码中,有些东西在当时似乎可行,但现在不再可用。这是代码,请让我知道我应该在代码中进行哪些更改才能使登录过程正常工作(当前,在输入有效的用户名并通过并单击登录后,它会冻结并显示第一页,而不是转到home.php < / p>
这是template / header.php:
<div class="container">
<!--Head wrap starts-->
<div id="head_wrap">
<!--Header starts-->
<div id="header">
<img src="images/logo.png" style="float:left;"/>
<form method="post" action="" id="form1">
<strong>Email:</strong>
<input type="email" id="email" name="email" placeholder="Email" required="required" />
<strong>Password:</strong>
<input type="password" id="pass" name="pass" placeholder="****" required="required"/>
<button type="submit" id="login">Login</button>
</form>
</div>
<!--Header ends-->
</div>
这是login.php
<?php
session_start();
include("includes/connection.php");
if(isset($_POST['login'])){
$email = mysqli_real_escape_string($con,$_POST['email']);
$pass = mysqli_real_escape_string($con,$_POST['pass']);
$get_user = "select * from users where user_email='$email' AND user_pass='$pass'";
$run_user = mysqli_query($con,$get_user);
$check = mysqli_num_rows($run_user);
if($check==1){
$email = mysqli_real_escape_string($con,$_POST['email']);
$_SESSION['user_email']=$email;
echo "<script>window.open('home.php','_self')</script>";
}
else {
echo "<script>alert('Passowrd or email is not correct!')</script>";
}
}
?>
请注意我已经尝试过
echo "<script> window.location.href = 'home.php';</script>";
代替
echo "<script>window.open('home.php','_self')</script>";
仍然不起作用,因为它是本教程,而且我通过stackoverflow搜索都找不到任何答案,我感谢您的帮助。
答案 0 :(得分:0)
您必须使用header(...)函数,但是请不要忘记页面始终在最后运行。不要忘记与die
一起使用来停止脚本。 ;)
die(header("Location: home.php"))
或5秒后:
header("refresh: 5; url=home.php");
答案 1 :(得分:0)
这是您的HTML代码,但带有一个提交按钮。您说所有文件都位于同一文件夹中,因此应该可以使用。我没有对login.php进行任何更改,但应在提交页面后运行。
<div class="container">
<!--Head wrap starts-->
<div id="head_wrap">
<!--Header starts-->
<div id="header">
<img src="images/logo.png" style="float:left;"/>
<form method="post" action="login.php" id="form1">
<strong>Email:</strong>
<input type="email" id="email" name="email" placeholder="Email" required="required" />
<strong>Password:</strong>
<input type="password" id="pass" name="pass" placeholder="****" required="required"/>
<input type="submit" id="login" name="login" value="Login">
</form>
</div>
<!--Header ends-->
</div>
</div>
编辑:我无法调试整个项目,但是在查看了一些内容之后,我发现您没有使用'name'属性。提交页面后,将在$ _POST数组中发送一个名称/值对。如果没有“名称”属性,则不会发送任何内容。首先添加“名称”属性。我已经修改了上面的HTML代码以向您展示如何操作。
答案 2 :(得分:0)
if($check==1){
$email = mysqli_real_escape_string($con,$_POST['email']);
$_SESSION['user_email']=$email;
return 1;
}
else {
return 0;
}
和javascript检查状态1和0,然后使用window.location.href和window.open
答案 3 :(得分:-1)
签入您的文件。
1)必须在发送任何实际输出之前调用header(),方法是 普通的HTML标签,文件中的空白行或来自PHP
2)合并所有PHP代码,并确保没有空格 在文件的开头。
3)标头之后('location:home.php');添加exit();
4)在sesssion_start()之后添加ob_start();