[英]How to change the password in PHP?
這是我的模型:
public function editNewPassword($data){
// $user_name = $data['user_name'];
$user_id = $data['id'];
$user_oldpass = $data['password'];
$user_newpass = $data['newpass'];
$sql = "UPDATE user SET password = '".md5($user_newpass)."' WHERE password = 'md5($user_oldpass)' ";
$query = $this->db->prepare($sql);
$query->execute();
}
public function getUser(){
return $this->db->select("SELECT * FROM 'users'");
}
這是我的控制器:
function changePassword(){
if(isset ($_POST['edit_password'])){
$user_oldpass = ($_POST['user_oldpass']);
$user_id = ($_POST['user_id']);
$user_name = ($_POST['user_name']);
$user_newpass = ($_POST['user_newpass']);
$this->model->editNewPassword($data);
}
}
這是我的 VIEW 代碼:
<form role="form">
<!-- <input typ e="text" name="username" id="username" placeholder="Enter Your Username"><br> -->
<input type="text" name="old_password" id="old_password" placeholder="Enter Your Old Password"><br>
<input type="text" name="new_password" id="new_password" placeholder="Enter Your New Password"><br>
<input type="text" name="con_newpassword" id="con_newmpassword" placeholder="Enter Confirm Password"><br>
<span id='message'></span>
<input type="hidden" id="edit_password_id">
<button id="edit_password" style="background-color:#008000">Submit</button>
這是我的 javascript 代碼:
$('#edit_password').on('click', function(){
// alert('Password changed successfully!')
var
user_id = $('#edit_password_id').val();
user_name = $('#username').val();
user_oldpass = $('#oldpassword').val();
user_newpass = $('#newpassword').val();
$.ajax({
url: URL+'changepassword/changePassword',
type: "post",
data: {
id : id,
name : name,
password : password,
newpass : newpass
},
success: function(response){
$('#edit_password_id').modal('toggle');
location.reload();
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
});
我的問題是我的密碼即使沒有錯誤也不會改變,我不知道我的代碼錯誤在哪里。 我是新來的。
這里的代碼是直接的問題:
$sql = "UPDATE user SET password = '" .
md5($user_newpass) .
"' WHERE password = 'md5($user_oldpass)' ";
對於“password”密碼,數據庫將看到:
UPDATE user SET password = '5f4dcc3b5aa765d61d8327deb882cf99'
WHERE password = 'md5(password)'
我相信你希望這里的md5()
被視為一個數據庫函數,但由於它是在引號中,它只會被視為一個普通的字符串。 由於您的用戶沒有md5(password)
,查詢會運行並且不會影響任何行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.