PHP 5.5 的用户偶尔会遇到来自password_verify() 函数的意外错误返回值。
考虑以下代码snippet:
// get result row (as an object) $result_row = $result_of_login_check->fetch_object(); // using PHP 5.5's password_verify() function to check if the provided password fits // the hash of that user's password if (password_verify($_POST['user_password'], $result_row->user_password_hash)) { // ... }
尽管验证了 $_POST['user_password'] 和 $result_row->user_password_hash 值是否正确,password_verify() 仍然返回 false。
该问题通常是由于列长度不足以在数据库中存储哈希密码而引起的。 PHP 手册建议使用容量至少为 255 个字符的列,因为哈希密码的长度可能超过 60 个字符。
要解决此问题,请确保用于存储哈希密码的数据库列具有足够的长度。将列定义更新为 255 或更长的长度应该可以解决该问题并允许 password_verify() 正常运行。
以上是尽管凭据正确,为什么 PHP 的 `password_verify()` 返回 False?的详细内容。更多信息请关注PHP中文网其他相关文章!