我一直在使用代碼點火器重建我的網站,並且無法驗證用戶信息。簡而言之,我可以在登錄表單中輸入亂碼,無論如何,它都會將我帶到「歡迎」頁面。無法通過代碼點火器驗證用戶登錄
點擊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