我正在尝试在 PHP 中使用 crypt() 对用户进行身份验证。这是我在登录页面中的代码:
$valid = MemberDB::isValidMember($email_address, $password);
if ($valid == TRUE) {
$_SESSION['is_valid_member'] = TRUE;
header("Location: ../welcome/");
} else {
$login_message = 'log in';
include('./view/login.php');
}
这是应该带回 True 或 False 的函数:
public static function isValidMember($email_address, $password) {
$db = Database::getDB();
$query = "SELECT member_ID, password
FROM members
WHERE email_address = :email_address";
$statement = $db->prepare($query);
$statement->bindValue(':email_address', $email_address);
$statement->execute();
$row = $statement->fetch();
$statement->closeCursor();
return $row ? crypt($password, $row['password']) : FALSE;
}
目前,无论我输入什么密码,它都会让我进入。当我对 $valid 执行 var_dump 时,它会返回加密密码的 98 个字符字符串,因此我知道 $valid 不等于 TRUE。请帮忙!
谢谢。