我正在尝试使用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>";
}
}
->尝试这种方式,我的代码与您的代码相似,但完全不同。
->这是我的项目代码,可以正常工作。
$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");
}
此代码是更改管理员密码
->如果您在我的代码中有任何查询,我很乐意在我的代码中进行更多说明。
->感谢您的阅读。