Codeigniter用户登录

时间:2015-02-03 08:28:00

标签: php codeigniter login

我一直在尝试通过从表单中检索用户名和密码输入并将其与数据库进行比较来在Codeigniter项目上创建登录功能。但是,使用此当前代码,即使我在登录表单上使用正确的用户名/密码组合,我也会收到我的否定结果消息(回声'坏' - 仅用于测试)。我的登录页面有一个单独的功能。

截至目前,我没有任何错误消息。任何帮助或指导,以使这项工作将不胜感激。

控制器

 public function user_login()
   {   

      $user_name = $this->input->post('user_name'); 
      $password =   $this->input->post('password');

      $data = array( 

         'user_name' => $user_name,
         'password' =>  hash('sha256' , $password . 'SALT')
      );  

      $result = $this->user_model->login($data);
         if($result == TRUE){
             $sess_array = array(
              'user_name' => $this->input->post('user_name')
      );
         } else 
         { 
          echo 'bad'; 
         } 

   } 

模型

 public function login($data) 
   { 
      $condition = "user_name =" . "'" . $data['user_name'] . "' AND " . "password =" . "'" . $data['password'] . "'";  
      $this->db->select('*');
      $this->db->from('users');
      $this->db->where($condition);
      $this->db->limit(1);
      $query = $this->db->get();

      if ($query->num_rows() == 1) {
        return true;
        } else {
        return false;
        }
  } 

2 个答案:

答案 0 :(得分:0)

型号:

$q = $this->db->get_where('users', array(
    'user_name' => $data['user_name'],
    'password' => $data['password']
));

if (count($q->result())>0) {
    return true;
}
else {
    return false;
}

答案 1 :(得分:0)

您的模型可以简化。

public function login($data) 
{  
      $query = $this->db->get_where('users', $data);

      return $query->row();
  } 

然后在你的控制器中:

 //Stuff

 $result = $this->user_model->login($data);
 if($result)
      //Foo
 else
      //Bar