2011-11-14 5 views
0

コードイグナイターでサイトを再構築していて、ユーザー情報の検証に問題があります。簡単に言えば、私は自分のログインフォームにばかげた形で入力することができます。それは何があっても私を「ようこそ」ページに連れて行きます。私のコードを表示するコードイグナイターによるユーザーログインを確認できません

クリックHERE事前に

感謝。

if($query->num_rows = 1) { 

は次のようになります:あなたは一つの問題以上のものを持っていますが、これは間違いなくそのうちの一つである場合はわからない

+0

セッションデータが作成されていますか? '$ this-> output-> enable_profiler(TRUE);'をコンストラクタに追加し、dbクエリとセッションデータを検査することができます。 - また、 'home/dashboard'コードを見て、 – swatkins

+0

を見ると参考になるでしょう。また、私は判断しませんが、プレーンテキストパスワードをデータベースに保存しているようです。それらを暗号化する必要があります。 – swatkins

+0

私は塩でSHA1を使用するつもりです、私はちょうど最初に正しく動作するサインを取得しようとしています。その後、私は変更します – LightningWrist

答えて

5

if($query->num_rows() == 1) { 
+0

このページはCIユーザガイドからご覧ください。 http://codeigniter.com/user_guide/database/results.html –

0

$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(); 
    } 
} 
0

Minboostの答えは間違いなくあなたが進む前に解決しなければならない何かが、割り当てです真と評価し、反対の問題があるはずです。人々は何に関わらずログインします。

セッションをデータベースに保存しているのか、Cookieで保存していますか?以前はクッキーを設定してすぐにリダイレクトするという問題がありました。一部のブラウザでは、Set-CookieとLocationのヘッダーの順序に問題があるようです。あなたは頭をあまりにも強く打つ前にそれを排除しようとするかもしれません。

A)何らかの理由でログインページにリダイレクトされているかもしれないコード、B)ルーティングの問題、C)FireBugのレスポンスヘッダーをトレースすることでわかるその他のものがあります。

関連する問題