PHP登录不起作用
我有一个简单的登录系统,它不会工作,我不知道为什么。一旦我按下登录按钮,什么也没发生,网站只是重新加载,而不是重定向我或给我任何错误消息PHP登录不起作用,php,mysql,login,Php,Mysql,Login,我有一个简单的登录系统,它不会工作,我不知道为什么。一旦我按下登录按钮,什么也没发生,网站只是重新加载,而不是重定向我或给我任何错误消息 if(!empty($_POST['email']) && !empty($_POST['password'])){ $records = $conn->prepare('SELECT email, password FROM Profiles WHERE email = :email'); $records ->
if(!empty($_POST['email']) && !empty($_POST['password'])){
$records = $conn->prepare('SELECT email, password FROM Profiles WHERE email = :email');
$records ->bindParam(':email', $_POST['email']);
$records->execute();
$results = $records->fetch(PDO::FETCH_ASSOC);
$message = '';
if(count($results) > 0 && password_verify($_POST['password'], $results['password'])){
$_SESSION['user_email'] = $results['email'];
header("Location: main.php");
}else{
$message = 'Sorry, those credentials do not match';
}
}
这是HTML表单
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
<input type="text" placeholder="Email" name="email"> <br/> <br/>
<input type="password" placeholder="Password" name="password"> <br/> <br/>
<input type="submit" value="Login">
</form>
将会话写入关闭()放在标题更改的行之前
session_write_close();
header("Location: main.php");
exit;
评论“在我按下登录按钮后,我再也不会被重定向到main.php了。什么也没发生。”
在标题更改后添加exit,以确保没有任何东西中断(例如一些回音)重定向。将会话写入关闭()放在标题更改前
session_write_close();
header("Location: main.php");
exit;
评论“在我按下登录按钮后,我再也不会被重定向到main.php了。什么也没发生。”
在更改标头后添加exit,以确保没有中断重定向(例如,一些回音)。请确保在调用会话之前已启动会话,否则请将其放入
session_start()代码>呼叫前$\u会话[]
更新1
然后打印$\u POST
并在散列后将数据与$results
进行比较,并手动验证是否匹配。请确保在调用会话之前已启动会话,否则请将其放入
session_start()代码>呼叫前$\u会话[]
更新1
然后打印$\u POST
并在散列后将数据与$results
进行比较,并手动验证是否匹配。来自(我的)评论:
“我的猜测是,这以前经常发生,密码列的长度不够长。如果是这样的话,那么它会自动失败,这就是我之前所说的,也是与此相关的。如果该列小于60,则需要重新开始,删除旧哈希,将该列更改为60+(255更好)并创建一组新的散列。我已经回答了很多这样的问题,正因为如此…-弗雷德-ii-
和OP:
@弗雷德二世-你是对的,它现在正在工作!非常感谢你!难怪这困扰了我好几个小时。–克里克斯“
根据(我的)评论:
“我的猜测是,这以前经常发生,密码列的长度不够长。如果是这样的话,那么它会自动失败,这就是我之前所说的,也是与此相关的。如果该列小于60,则需要重新开始,删除旧哈希,将该列更改为60+(255更好)并创建一组新的散列。我已经回答了很多这样的问题,正因为如此…-弗雷德-ii-
和OP:
@弗雷德二世-你是对的,它现在正在工作!非常感谢你!难怪这困扰了我好几个小时。–克里克斯“
发生了什么错误?@NineBerry我没有收到任何错误消息,我只是在按下登录按钮后再也没有被重定向到main.php。什么都没有发生。所以,按下登录按钮后您仍然可以看到表单?如何打开登录表单?或者按下按钮后可以看到一个空白页面?@NineBerry我仍然可以看到登录按钮后的表单wards,我按下login按钮后仍然在同一页。登录表单只是在一个非常简单的文档中。表单不在login.php中,而是在一个单独的html文件中?有什么错误?@NineBerry我没有收到任何错误消息,只是在按下login按钮后,我再也不会被重定向到main.php。没有任何错误g发生了。那么,你在按下登录按钮后仍然可以看到表单?你如何打开登录表单?或者在按下按钮后可以看到一个空页面?@NineBerry我之后仍然可以看到表单,在按下登录按钮后我仍然在同一页面。登录表单只是在一个非常简单的文档主体中。表单不是我nside login.php,但在一个单独的html文件中?我在login.php的开头使用了session_start(),并且在我的大多数文件中都是这样做的。我在login.php的开头使用了session_start(),并且在我的大多数文件中都是这样做的。