我有这个PHP代码。变量$ password具有静态分配的正确密码(无需用户输入验证)。
$ data ['password']在使用echo打印出来时也会返回正确的哈希值。
但不知何故,password_verify函数在此函数中不起作用。当我使用相同的输入手动使用它时它工作正常。
也许PDO查询有问题,但我不知道是什么。
$this->mysql->query("SELECT * FROM user WHERE username = :username LIMIT 1");
$this->mysql->bind(':username', $username);
$data = $this->mysql->single();
if($this->mysql->rowCount() == 1)
{
echo $data['password'];
if(password_verify($password, $data['password']))
{
echo "yees!";
}else{
$this->user_error = true;
}
}else{
$this->user_error = true;
}
答案 0 :(得分:0)
所以我明白了。
数组中有一些空格,但我不知道它们来自哪里。
所以我使用trim()
函数来删除这些空格,现在一切正常。
感谢您的快速帮助!