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中文網其他相關文章!