$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();
}
}
セッションデータが作成されていますか? '$ this-> output-> enable_profiler(TRUE);'をコンストラクタに追加し、dbクエリとセッションデータを検査することができます。 - また、 'home/dashboard'コードを見て、 – swatkins
を見ると参考になるでしょう。また、私は判断しませんが、プレーンテキストパスワードをデータベースに保存しているようです。それらを暗号化する必要があります。 – swatkins
私は塩でSHA1を使用するつもりです、私はちょうど最初に正しく動作するサインを取得しようとしています。その後、私は変更します – LightningWrist