gpt4 book ai didi

PHP:匹配散列密码与用户输入不起作用

转载 作者:行者123 更新时间:2023-11-29 01:28:00 24 4
gpt4 key购买 nike

<分区>

我是 PHP 新手,正在尝试检查用户(登录页面)提供的密码是否与存储在数据库中的散列密码相匹配。数据库中的密码通过 $pw = password_hash($_POST["pw"], PASSWORD_BCRYPT);(与我用于用户输入的相同方法)散列并存储在 VARCHAR(255) 列。

我现在尝试使用 password_verify 将其与用户输入进行比较,但出现了以下由 else 部分引起的错误。

有人能告诉我我做错了什么吗?我也尝试删除“== true”,但这也不起作用。

我的 PHP:

$email = $_POST["email"];
$pw = password_hash($_POST["pw"], PASSWORD_BCRYPT);

$stmt = $conn->prepare("SELECT email, pw FROM Users WHERE email = ?");
$stmt->bind_param('s', $email);
$stmt->execute();
$result = $stmt->get_result();
if(mysqli_num_rows($result) == 0){
echo "Email has not been registered yet";
}else{
if(password_verify($pw, $result["pw"]) == true){
echo "Password correct";
}else{
echo "Password incorrect";
}
};

错误:

"Fatal error: Cannot use object of type mysqli_result as array..."

更新:
对我来说,这与另一个被称为可能重复的问题不同,因为在我的情况下,我要么得到上述错误,要么(当遵循下面的 Bing 方法时)结果总是“密码不正确”——与输入无关。

非常感谢。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com