密码不会被加密

问题描述 投票:-1回答:1

我正在尝试使用password_hash(),但是由于某些原因它不起作用。如果您能帮助我,那就太好了。

当我更新user_password时,它不会加密密码,而只是在我输入密码时将密码发送到mysql数据库中。这是我第一次在这里提出问题,所以我可能没有给您足够的背景信息。如果是这种情况,请让我知道我忘记提及的内容。非常感谢!

if(isset($_POST["edit_user"])){
    $user_firstname = $_POST["user_firstname"];
    $user_lastname = $_POST["user_lastname"];
    $user_role = $_POST["user_role"];
    $username = $_POST["username"];
    $user_email = $_POST["user_email"];
    $user_password = $_POST["user_password"];
    $user_prefecture = $_POST["user_prefecture"];
    $user_address = $_POST["user_address"];
    $user_phonenum = $_POST["user_phonenum"];


    if(!empty($user_password)){
        $query_password = "SELECT user_password FROM users WHERE user_id = $the_user_id";
        $get_user_query = mysqli_query($connection, $query_password);
        confirmQuery($get_user_query);

        $row = mysqli_fetch_array($get_user_query);
        $db_user_password = $row["user_password"];

        if($db_user_password != $user_password){
            $hashed_password = password_hash($user_password, PASSWORD_BCRYPT, array('cost => 12'));
        }

        $query = "UPDATE users SET ";
        $query .= "username = '{$username}', ";
        $query .= "user_password = '{$hashed_password}', ";
        $query .= "user_firstname = '{$user_firstname}', ";
        $query .= "user_lastname = '{$user_lastname}', ";
        $query .= "user_email = '{$user_email}', ";
        $query .= "user_phonenum = '{$user_phonenum}', ";
        $query .= "user_role = '{$user_role}', ";
        $query .= "user_prefecture = '{$user_prefecture}', ";
        $query .= "user_address = '{$user_address}' ";
        $query .= "WHERE user_id = '{$the_user_id}' ";
        $edit_user_query = mysqli_query($connection, $query);
        if(!$edit_user_query){
            die("Query failed." . mysqli_error($connection));
        }

        echo "<h1>User Updated.</h1>" . "<a href='users.php'>View User?</a>";

    }
}

php password-encryption password-hash
1个回答
0
投票

->尝试这种方式,我的代码与您的代码相似,但完全不同。

->这是我的项目代码,可以正常工作。

$encryptPassword=password_hash($updatePassword, PASSWORD_BCRYPT);


    $sql = "SELECT `CompanyName` FROM `user_registration` WHERE `ID`='$ID' && `CompanyEmail`='$CompanyEmail'";
    $result = mysqli_query($conn, $sql);
    if(mysqli_num_rows($result) != 0)
    {
        $sql = "UPDATE `user_registration` SET `AdminPassword`='$encryptPassword' WHERE `ID`='$ID'";
        $result = mysqli_query($conn, $sql);
        if ($result) 
        {
            $_SESSION['AdminPasswordUpdateSuccessfully'] = "AdminPasswordUpdateSuccessfully";
            header("Location: ./../admin_panel/managepassword.php");
        }
        else 
        {
            $_SESSION['AdminPasswordUpdatefailes'] = "AdminPasswordUpdateSuccessfully";
            header("Location: ./../admin_panel/managepassword.php");
        }
    }
    else 
    {
        header("Location: ./../admin_panel/managepassword.php");
    }

此代码是更改管理员密码

->如果您在我的代码中有任何查询,我很乐意在我的代码中进行更多说明。

->感谢您的阅读。

© www.soinside.com 2019 - 2024. All rights reserved.