2016-06-20 26 views
0

私は以下のような基本的なログイン機能を書こうとしています。Codeigniter:ログイン機能の問題

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 ; 

    } 

コントローラ

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); 

      } 
     } 

モデルは今の問題は、そのすべての投稿のフィールド値、そのは、else文に行く、私はそれを行うことを期待するもの戻らないということで、データベースの値は同じですので、この問題を解決するのを手伝ってください。

+0

次のように、それはユーザーにそれを作るんモデルのログインメソッド、またはsuのみを取得するかコントローラのbmit_login()メソッド?それがモデルに到達すると、$ query-> num_rows()と$ query-> result()からどのような値が得られますか? – slapyo

+0

私はフォームの配列を持っているログインコントローラを持っています、それはsubmit_loginに提出され、データはログインメソッドに渡されます、それは何を偽って返しますか? – Sikander

+0

どのバージョンCodeigniter? var_dump($ query-> num_rows()); – slapyo

答えて

0

tryこのコードは、それが役立つことがあります。

コントローラ

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');