[英]Changing the old password
我有兩個文件
SiteController.php
public function actionPassword(){
$pass = (isset($_POST['pass']) && $_POST['pass'] != "" ? $_POST['pass'] : "");
$newPass = (isset($_POST['newpass']) && $_POST['newpass'] != '' ? $_POST['newpass'] : '');
$confirmPass = (isset($_POST['confirmpass']) && $_POST['confirmpass'] != '' ? $_POST['confirmpass'] : '');
$result = Yii::app()->params['result'];
if($pass == '' || $newPass == '' || $confirmPass == '' ){
$result['msg'] = "Empty password!";
}else{
$dbUser = new Users;
$findUser = $dbUser->find('username = :user', array(':user' => $user));
$verify = CPasswordHelper::verifyPassword($pass, $findUser->password);
if(!$verify){
$result['msg'] = "Wrong password!";
}else{
if($verify->status_id == 0 || $verify->status_id == '-1'){
$result['msg'] = "This password does not exist";
}else if($verify->status_id == 1){
if ($newPass == $confirmPass){
if($dbUser->save()){
$result['code'] = 1000;
$result['error'] = 1;
$result['msg'] = 'Password successfuly changed';
}else{
$result['code'] = 1005;
$result['error'] = 0;
$result['msg'] = $dbUser->error;
}
}
}
}
}
$json = json_encode($result);
echo $json;
}
public function actionViewPassword() {
$this->checkLogin();
$this->render('password');
}
和另一個文件是
password.php
<div class="view_container">
<div class="pagetitle">Change Password</div>
<div class="label_row">
<div class="label">Old Password: </div>
<div class="input_label"><input type="text" value="" placeholder="Old Password" id="pass" /></div>
</div>
<div class="label_row">
<div class="label">New Password: </div>
<div class="input_label"><input type="text" id="newpass" value="" placeholder="New Password" /></div>
</div>
<div class="label_row">
<div class="label">Confirm New Password: </div>
<div class="input_label"><input type="text" id="confirmpass" value="" placeholder="Confirm New Password" /></div>
</div>
<div class="label_row">
<div class="label"></div>
<div class="input_label"><input type="submit" id="btnSubmit" value="Confirm" /></div>
</div>
</div>
<script>
$(document).ready(function(){
var userurl = '<?php echo Yii::app()->createAbsoluteUrl('user/password'); ?>';
$('#btnSubmit').click(function(){
var JoldPass = $('#pass').val();
var JnewPass = $('#newpass').val();
var JconfirmPass = $('#confirmpass').val();
loading(true);
$.ajax({
type: "POST",
url: userurl,
data: {
pass: JoldPass,
newpass: JnewPass,
confirmpass: JconfirmPass
},
dataType: "json",
}).done(function(e) {
alert(e.msg);
}).fail(function(e){
alert(e.error);
});
});
});
</script>
好的,這是一個問題,我想在這里獲取網頁以將舊密碼替換為新密碼。 我已經嘗試了好幾天了,但是所有我都無法解決。 我希望數據庫成功更改舊密碼。 我在這里想念什么?
輸入舊密碼:11111
輸入新密碼:22222
確認新密碼:22222
現在新的密碼是22222。如果我是PHP新手,如果有人可以幫助我,我將很高興。
我重寫了一點你的代碼,
public function actionPassword(){
if(empty($_POST['pass']) || empty($_POST['newpass']) || empty($_POST['confirmpass']) ){
$result['msg'] = "Empty password!";
$this->returnResult($result);
return;
}
$pass = $_POST['pass'];
$newPass = $_POST['newpass'];
$confirmPass = $_POST['confirmpass'];
$result = Yii::app()->params['result'];
$dbUser = Users::model()->find('username = :user', array(':user' => $user));
if(empty($dbUser)){
$result['msg'] = "User not found!";
$this->returnResult($result);
return;
}
$verify = CPasswordHelper::verifyPassword($pass, $dbUser->password);
if(!$verify){
$result['msg'] = "Wrong password!";
$this->returnResult($result);
return;
}
//This means nothing, verifyPassword return true or false, not an object
if($verify->status_id == 0 || $verify->status_id == '-1'){
$result['msg'] = "This password does not exist";
$this->returnResult($result);
return;
}
if($verify->status_id == 1 && $newPass == $confirmPass){
if($dbUser->save()){
$result['code'] = 1000;
$result['error'] = 1;
$result['msg'] = 'Password successfuly changed';
$this->returnResult($result);
return;
}
$result['code'] = 1005;
$result['error'] = 0;
$result['msg'] = $dbUser->error;
$this->returnResult($result);
}
}
protected function returnResult($result)
{
$json = json_encode($result);
echo $json;
}
現在有幾個問題:
$verify->status_id
但$verify
是verifyPassword
的結果,返回true
或false
,但不是對象! $dbUser
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.