首頁  >  文章  >  後端開發  >  我應該在 PHP 登入腳本中放置 `password_verify` 嗎?

我應該在 PHP 登入腳本中放置 `password_verify` 嗎?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-25 19:55:13616瀏覽

Where Should I Place `password_verify` in My PHP Login Script?

在登入腳本中哪裡實作password_verify?

為了增強登入系統的安全性,在登入腳本中使用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,您可以安全地比較密碼,而無需洩露其加密形式,從而確保用戶資料的完整性。

實作 $results = $ stmt->fetch(PDO::FETCH_ASSOC);

為了簡化使用者詳細資訊的檢索,您可以使用 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn