我有一个简单的登录系统,它不起作用,我不知道为什么。一旦我按下登录按钮,什么也没有发生,该站点只是重新加载,而不是重定向我或给我任何错误消息。
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>
来自(我的)评论:
“我的猜测是,这种情况以前经常发生,是密码列的长度不够长。如果是这样,那么默默地失败了,这就是我之前所说的,也是关于那个。如果列小于 60,那么你需要重新开始,删除旧的散列,将列更改为 60+(255 更好)并创建一组新的散列。我已经回答了很多这样的问题,因为那个.. – Fred -ii-”
和操作:
@Fred-ii- 您说得对,现在可以使用了!非常感谢!难怪这一直困扰着我几个小时。– Krillex”
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句