2016-05-31 131 views
1

我试图做一个更改密码功能,但什么也没有发生。我实际上改编了codeigniter change password代码,但是再次没有任何事情发生。在这里我附上了代码,任何hep都将不胜感激。更改codeigniter上的密码

控制器 -

function change_password_process() 
    { 
     $this->load->view('ubahpassword_view'); 
     $this->load->library('form_validation'); 
     $this->load->library('session'); 
     $this->form_validation->set_rules('pass_lama','Password Lama','trim|required|min_length[4]|max_length[32]'); 
     $this->form_validation->set_rules('pass_baru','Password Baru','trim|required|min_length[4]|max_length[32]'); 
     $this->form_validation->set_rules('ulangpass_baru','Ulangi Password Baru','trim|required|min_length[4]|max_length[32]|matches[pass_baru]'); 

     if ($this->form_validation->run() == FALSE) 
     { 
      redirect('ubahpassword');  
     } 
     else 
     { 
      $query = $this->rekammedis_model->change_password(); 
      redirect('ubahpassword'); 
     } 
    } 

模型 -

function change_password() 
    { 
     $this->db->select('id'); 
     $this->db->where('username', $this->session->userdata('username')); 
     $this->db->where('id', $this->session->userdata('id')); 
     $this->db->where('password', md5($this->input->post('pass_lama'))); 
     $query = $this->db->get('user'); 

     if ($query->num_rows() > 0) 
     { 
      $row = $query->row(); 
      if($row->id === $this->session->userdata('id')) 
      { 
       $data = array(
        'password' => md5($this->input->post('pass_lama')) 
       ); 

       $this->db->where('username', $this->session->userdata('username')); 
       $this->db->where('password', md5($this->input->post('pass_lama'))); 

        if($this->db->update('user', $data)) 
        { 
         return "Password berhasil diganti!"; 
        } 

        else 
        { 
         return "Terdapat kesalahan, password tidak terganti"; 
        } 
      } 

      else 
      { 
       return "Terdapat kesalahan, password tidak terganti"; 
      } 


     } 

     else 
     { 
      return "Password lama salah"; 
     } 

    } 
+0

pass_lama是您的旧密码字段名称或新密码字段名称 –

+0

即时通讯对不起的问题。 yes pass_lama是我的旧密码,pass_baru是我的新密码,ulangpass_baru是我的新密码确认。你能帮我找到哪里是错误的代码? – nadiakrtika

回答

1

假设巴鲁意味着新的和喇嘛意味着旧。

您与旧密码本身(pass_baru)正在改变旧密码

所以更换

$data = array('password' => md5($this->input->post('pass_lama'))); 

$data = array('password' => md5($this->input->post('pass_baru'))); 


UPDATE
发现了另一个错误

if ($this->form_validation->run() == FALSE) 
{ 
    redirect('ubahpassword');  
} 

你不能把它重定向,如果你这样做,你就不会在这里得到验证。
将您的视图加载到此处。同时更新您的代码如果它不起作用

+0

我已经这样做了,但还是一样没有发生 – nadiakrtika

+0

@nadiakrtika我更新了我的解决方案 –