0

私はコードイグナイターが初めてです。パスワードを変更して、古いパスワードと一致させたい。一致した場合、ユーザーは新しいパスワードを入力できます。私のビューファイルは

<div class="modal-body">
<?php echo form_open('textarea/changePass')?>
<input class="span5" type="password" name="oldPass" placeholder="Old Password" required/>
<input class="span5" type="password" name="newPass" placeholder="New Password" required/>
<input class="span5" type="password" name="renewPass" placeholder="Re-type New Password" required/>


    <input type="submit" value="Change" class="btn btn-primary btn-inverse" />
    <button type="button" data-dismiss="modal" class="btn">Cancel</button>
     <?php echo form_close()?>
     </div>

私のコントローラーファイルは次のとおりです。

function changePass(){
    $this->load->library('form_validation');
    $this->form_validation->set_rules('oldPass','Old Password','required');
    $this->form_validation->set_rules('newPass','New Password','required');
    $this->form_validation->set_rules('renewPass','Retype Password','required|matches[newPass]');

    if($this->form_validation->run() == FALSE){
        $ref = $this->input->server('HTTP_REFERER', TRUE);
        redirect($ref, 'location');

    }else{
        $query = $this->mod1->checkOldPass(md5($this->input->post('oldPass')));
        echo "sdgsggs";
        if($query){
            $query = $this->mod1->saveNewPass(md5($this->input->post('newPass')));
            if($query){
                $this->session->sess_destroy();
                $data['error']='Password Change Successfully. Please login to Continue.';
                $this->load->view('first',$data);

            }else{
                $ref = $this->input->server('HTTP_REFERER', TRUE);
                redirect($ref, 'location');

            }
        }
    }
}

私のモデルファイルは次のとおりです。

    function checkOldPass($oldPass){
    $this->db->where('username',$this->session->userdata('username'));
    $query=$this->db->get('members');
    if($query->num_rows>0){
        $row=$query->row();
        if($oldPass == $row->password){
            return true;
        }else{
            return false;
        }
    }
}

function saveNewPass($new_pass){
    $data = array(
        'password' => $new_pass
    );
    $this->db->where('username', $this->session->userdata('username'));
    $query = $this->db->update('members', $data);
    if($query){
        return true;
    }else{
        return false;
    }
}

古いパスワードの確認に問題があります。false を返します。パスワードを md5 形式で保存しました。みんな助けてください。厳しくしないでください。ありがとうございました。

4

1 に答える 1