在登录脚本中,密码通常由用户输入并存储在明文变量中。要根据数据库中存储的加密密码验证输入的密码,我们需要使用password_verify()。
if(password_verify($enteredPassword, $hashedPassword)) { // Password verification successful } else { // Password verification failed }
在您的具体情况下,您可以在以下代码段中集成password_verify():
if(($row = $query->fetch()) && (password_verify($ctPassword,$row['password']))){ // Password verification successful $_SESSION['email'] = $row['email']; $_SESSION['first_name'] = $row['first_name'];
记得将输入的密码($ctPassword)绑定到准备好的语句中的参数以确保安全执行。
要使用 PDO::FETCH_ASSOC 更有效地检索用户数据,您可以将代码更新为如下:
$results = $query->fetch(PDO::FETCH_ASSOC); if($results && password_verify($ctPassword, $results['password'])) { foreach($results as $key => $value) { $_SESSION[$key] = $value; } }
这会自动将所有检索到的值分配为会话变量,从而可以方便地访问“我的帐户”页面。
以上是密码验证应该放在登录脚本中的什么位置?的详细内容。更多信息请关注PHP中文网其他相关文章!