2016-06-20 64 views
0

我正在嘗試編寫如下所示的基本登錄功能。Codeigniter:與登錄功能問題

控制器

public function submit_login(){ 
      if($this->input->post('submit')){ 
       $email= $this->input->post('email'); 
       $password= $this->input->post('password'); 
       $this->load->model('user_model'); 
       $result= $this->user_model->login($email, $password); 

      } 
     } 

型號

public function login($email, $password){ 
     $this->db->select('email', 'password'); 
     $this->db->where('email',$email); 
     $this->db->where('password',$password); 
     $this->db-> limit(1); 
     $query= $this->db->get('user'); 

     if($query->num_rows()>0){ 
      return $query->result(); 
     } 
     return false ; 

    } 

現在的問題是,它不返回我所期望它做的事,它要else語句,所有發佈的字段值和數據庫值相同,所以請幫我解決這個問題

+0

是否使它的用戶在模型中使用登錄方法,還是隻能得到su控制器中的bmit_login()方法?如果它到達模型,您從$ query-> num_rows()和$ query-> result()獲得什麼值。 – slapyo

+0

我有一個登錄控制器有數組形式,然後它被提交到submit_login和數據被傳遞到登錄方法,在登錄它返回false這就是什麼heppening – Sikander

+0

什麼版本Codeigniter? var_dump($ query-> num_rows());' – slapyo

回答

0

試試這個代碼,它可以幫助:

控制器

public function submit_login(){ 
     if($this->input->post('submit')){ 
      $email= $this->input->post('email'); 
      $password= $this->input->post('password'); 
      $this->load->model('user_model'); 
      $result= $this->user_model->login($email); 
      if(!empty($result)) 
      { 
       if($result->password == $password) 
       { 
        ////do something 
       } 
       else 
       { 
        // print error 
       } 

      } 
      else 
      { 
      // do something 
      } 
     } 
    } 

型號

public function login($email){ 
    $this->db->select('password'); 
    $this->db->where('email',$email); 

    $query= $this->db->get('user'); 
    return $query->row(); 
} 
1

變化模型如下

$this->db->select('email, password');