首页 > 解决方案 > 使用带有散列密码的 PHP 重置密码

问题描述

我正在尝试实现用户在登录到我的系统仪表板后可以更改密码。

当我尝试更改密码时,尽管没有错误,但什么也没有发生,而且我不确定自己做错了什么。我已经实现了密码哈希来保证用户密码的安全,尽管我不确定这可能是问题所在。

这是我的更改密码代码

<?php
include('../configfiles/config.php');
session_start();

if (isset($_POST['submit']))
{
  $logged_in_user = $_SESSION['loggedin'];

  $currentpassword = $_POST ['currentpassword'];
  $newpassword = $_POST ['newpassword'];
  $newhashpassword = password_hash($newpassword, PASSWORD_DEFAULT);

  if ($newpassword != $currentpassword)
  {
    $sql = ("SELECT * FROM users WHERE email = '$logged_in_user'");
    $db_check = $db->query($sql);

    if (password_verify($currentpassword, $db_check->fetch_assoc()['password']))
    {
      $fetch = $db->query("UPDATE users SET password = '$newhashpassword' WHERE email = '$logged_in_user'");
      $currentpassword = ''; 
      $newpassword = '';
      header('Location: ../dashboard.php');
    }
  }
}
?> 

标签: phphtmlsql

解决方案


推荐阅读