這裏是我的控制器笨 - 查詢返回1行,即使沒有數據來匹配
public function login() {
$this->load->model('admin_model');
$access = $this->admin_model->check_login();
$data['content'] = 'content/home';
$data['title'] = 'Admin Panel Login';
if($access) {
$data= array(
'email' => $this->input->post('email'),
'is_logged_in' => true
);
$this->session->set_userdata($data);
redirect('admin/index/dashboard');
} else {
$this->index($page = 'home', $msg = 'failure');
}
這裏是我的模型
public function check_login() {
$this->db->where('email', $this->input->post('email'));
$this->db->where('password', $this->input->post('password'));
$query = $this->db->get('customers');
return (bool) $query->num_rows;
}
所以,我一直在爲一個功能我的Admin構造函數將確保用戶在登錄之前不能訪問任何頁面。問題是,當我去管理員/登錄時,它將is_logged_in設置爲true,即使check_login函數應該返回爲false。這是說,它正在發現一排,即使我的數據庫中只有1行現在應該不匹配。
我是新來的CI,所以請溫柔。 :)
即使在調整我的代碼後,它不起作用。它正在做的查詢是: SELECT * FROM ('客戶') 其中'email' = 0 和'password' = 0 和它的返回check_login()是真的。 (0和0是默認發佈的內容)也許我組織不正確? – ohiock 2012-02-02 15:47:45
您可以直接針對您的數據庫(CI之外)運行該查詢並查看返回的內容嗎? – 2012-02-02 16:03:59
當然。以下是輸出結果:「顯示行0 - 0(總共1次,查詢花費0.0004秒)」。我似乎無法弄清楚爲什麼$訪問迴歸爲真。 – ohiock 2012-02-02 16:18:41