用ci寫登入代碼,用$this->db->where查詢資料庫驗證帳號密碼時得到的總是空的傳回值
以下是控制器中驗證的函數代碼:
public function validate_credentials(){ $this->load->model('Bookmark_models'); $query = $this->Bookmark_models->where(); if ($query){ $data = array('username' => $this->input->post('username'), 'is_loggrd_in' => true); $this->session->set_userdata($data); $this->load->view('logged_in_area'); }else { $this->login(); }
以下是模型中的代碼:
public function where(){ $this->db->where('username',$this->input->post('username')); $this->db->where('passwd',sha1($this->input->post('password'))); $query = $this->db->get('user'); if ($query->num_rows == 1){ return true; }
回複內容:
用ci寫登入代碼,用$this->db->where查詢資料庫驗證帳號密碼時得到的總是空的傳回值
以下是控制器中驗證的函數代碼:
public function validate_credentials(){ $this->load->model('Bookmark_models'); $query = $this->Bookmark_models->where(); if ($query){ $data = array('username' => $this->input->post('username'), 'is_loggrd_in' => true); $this->session->set_userdata($data); $this->load->view('logged_in_area'); }else { $this->login(); }
以下是模型中的代碼:
public function where(){ $this->db->where('username',$this->input->post('username')); $this->db->where('passwd',sha1($this->input->post('password'))); $query = $this->db->get('user'); if ($query->num_rows == 1){ return true; }
用echo $this->db->last_query();
輸出原生sql語句到資料庫中執行看有沒有結果.
num_rows()
是個方法而不是屬性
另外也不建議你這麼寫,模型中就不建議做控制器的事了
public function login($user, $password) { return $this->db->where('username', $user) ->where('password', sha1($password)) ->get('user') ->row(); }
public function where(){ $this->db->where('username',$this->input->post('username')); $this->db->where('passwd',sha1($this->input->post('password'))); $query = $this->db->get('user'); echo $this->db->last_query();exit(); if ($query->num_rows() ){ return true; } return false;