我一直在使用代码点火器重建我的网站,并且无法验证用户信息。简而言之,我可以在登录表单中输入乱码,无论如何,它都会将我带到“欢迎”页面。无法通过代码点火器验证用户登录
点击HERE查看我的代码
在此先感谢。
我一直在使用代码点火器重建我的网站,并且无法验证用户信息。简而言之,我可以在登录表单中输入乱码,无论如何,它都会将我带到“欢迎”页面。无法通过代码点火器验证用户登录
点击HERE查看我的代码
在此先感谢。
不知道,如果你有一个以上的问题更多,但是这绝对是其中之一:
if($query->num_rows = 1) {
这应该是:
if($query->num_rows() == 1) {
请从CI用户指南查看此页面。 http://codeigniter.com/user_guide/database/results.html –
是什么$this->login();
做模型?
不管怎么说,这似乎为我正常工作:
型号:
public function validate($email, $password) {
if ($email == 0 || $password == 0) return false;
//SEE IF THEIR INFO IS IN THE DB
$this->db->where('email', $email);
$this->db->where('password', $password);
$query = $this->db->get('users');
return ($query->num_rows() == 1);
}
控制器:
public function validate() {
//THIS LOADS THE MODEL THAT TAKES ALL THEIR INFO THEY TYPED AND INSERT IN THE DB
$this->load->model('auth_model');
$this->load->library('session');
$query = $this->auth_model->validate($this->input->post('email'),$this->input->post('password'));
if($query) {
// IF THEIR INFO MATCHES UP, THEN START A SESSION WITH CI'S BUILT IN SESSION CLASS
$data = array(
'email' => $this->input->post('email'),
'password' => $this->input->post('password'),
'is_logged_in' => true
);
// AUTO LOADED SESSION CLASS
$this->session->set_userdata($data);
//THIS WILL TAKE THEM TO THE DASHBOARD PAGE IF EVERYTHING CHECKS OUT
redirect('home/dashboard');
} else {
// IF INCORRECT THEN RELOAD THE FORM FOR NOW
$this->index();
}
}
Minboost的答案是肯定的东西,你在继续之前应该可以解决,但分配应该评估为真,并且你会遇到相反的问题。无论如何,人们都会登录。
您是将会话存储在数据库中还是使用cookie?我之前在设置Cookie时遇到了问题,然后立即重定向。有些浏览器似乎与Set-Cookie和Location标题的顺序有关。你可能会试图排除你的头之前排除这个问题。其他可能性包括:A)代码您没有向我们展示可能由于某种原因重定向回登录页面的代码,B)路由问题,C)通过在FireBug中跟踪响应头文件可以找到的其他内容。
会话数据是否正在创建?你应该在你的构造函数中添加'$ this-> output-> enable_profiler(TRUE);'然后你可以检查db查询和会话数据。 - 这也将有助于看到“家庭/仪表板”的代码和视图 – swatkins
此外,我没有判断,但它看起来像你在数据库中存储纯文本密码。你应该加密这些。 – swatkins
我打算使用带有盐的SHA1,我只是想先让标志正常工作,然后我将修改 – LightningWrist