这里是我的控制器笨 - 查询返回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