我喜欢PHP,但有时它真的很烦人。
我在这里有一个登录脚本:
<?php
session_start();
require_once("include/database.php");
if (isset($_POST['submit'])) {
$errMsg = '';
//username and password sent from Form
$username = $_POST['user_login'];
$password = $_POST['user_password'];
if ($username == '') {
$errMsg .= 'You must enter your Username<br>';
}
if ($password == '') {
$errMsg .= 'You must enter your Password<br>';
}
if ($errMsg == '') {
$records = $db->prepare('SELECT user_id ,user_login ,user_password FROM users WHERE user_login = :username');
$records->bindParam(':username', $username );
$records->execute();
$results = $records->fetch(PDO::FETCH_ASSOC);
if (count($results) > 0 && password_verify($password, $results['user_password'])) {
$_SESSION['user_login'] = $results['user_login'];
header('location:test.php');
exit;
} else {
$errMsg .= 'Username and Password are not found<br>';
}
}
}
?>
但每次我尝试登录时,都会让我失望。并在底部弹出错误消息。
我的密码被哈希,所以我在 password_verify
中看不到问题我的用户表遵循以下设置:
表格布局
诀窍是,如果我删除 password_verify 我的代码可以正常工作,但它不会检查用户是否存在并在该页面上传递任何值。
提前致谢!