為了增強登入系統的安全性,在登入腳本中使用password_verify函數至關重要。此函數將提交的明文密碼 ($_POST['password']) 與資料庫中儲存的加密密碼 ($row['password']) 進行比較。以下是整合它的方法:
<?php ... // ... Existing code ... if ($row = $query->fetch()) { if (password_verify($_POST['password'], $row['password'])) { // Correct password - authenticated! ... } else { // Incorrect password - display error ... } } ...
透過使用password_verify,您可以安全地比較密碼,而無需洩露其加密形式,從而確保用戶資料的完整性。
為了簡化使用者詳細資訊的檢索,您可以使用 PDO::FETCH_ASSOC 方法。它會傳回一個關聯數組,其中鍵名稱對應於列名稱:
<?php ... $query = $conn->prepare("SELECT * FROM user_accounts WHERE email=:email"); $query->bindParam(':email', $_POST['email']); $query->execute(); $results = $query->fetch(PDO::FETCH_ASSOC); ...
現在,您可以使用關聯鍵直接存取使用者資訊:
$_SESSION['email'] = $results['email']; $_SESSION['first_name'] = $results['first_name'];
以上是我應該在 PHP 登入腳本中放置 `password_verify` 嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!