簡體   English   中英

更改舊密碼

[英]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$verifyverifyPassword的結果,返回truefalse ,但不是對象!
  • 您在代碼中的任何地方都沒有將新密碼分配給對象$dbUser

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM