我尝试使用OOP在php中创建一个登录系统。使用此代码可以正常工作:
if ($_SERVER['REQUEST_METHOD'] === 'POST' &&
!empty($_POST['email']) &&
!empty($_POST['password'])) {
$email = $_POST['email'];
$password = $_POST['password'];
$loggedUser = Users::loadUserByEmail($conn, $email);
if ($loggedUser != null) {
$loggedUserId = $loggedUser->getId();
$_SESSION['loggedUserId'] = $loggedUserId;
header('Location: index.php');
} else {
$info = "Invalid login or password. Try again";
}
} else {
$info = "Invalid login or password. Try again";
}
但是在这种情况下密码没有检查,所以我尝试添加password_verify函数。
if ($loggedUser != null) {
$hash = $loggedUser->getHashedPassword();
if (password_verify($password, $hash)) {
$loggedUserId = $loggedUser->getId();
下一步手动检查$ hash和var_dump显示与我的数据库中的相同,但函数返回false。什么是不正确的?