2017-03-18 10 views
1

コードが動作していてもログインできません。活性化された場合= 1のようにログインし、そうでない場合はログインしません。私のテーブルでアクティブになっている行はすでに1に設定されています。つまり、すでにアクティブ化されています。しかし、私はログインできません。それは常に活性化= 0を出力します。これはログインに失敗しました!あなたのメールアドレスのリンクをクリックしてください!アカウントを有効にした後にログインする方法は?

public function index() 
{ 
    $Username=$this->input->post("username"); 
    $Password=$this->input->post("password"); 

    $this->form_validation->set_rules("username", "username", "trim|required"); 
    $this->form_validation->set_rules("password", "password", "trim|required"); 

    $this->db->where('Username', $this->input->post('username')); 
    $this->db->where('Password', $this->input->post('password'));  
    $this->db->select('activated'); 
    $que=$this->db->get('tblaccount'); 

    if ($this->form_validation->run()==FALSE) 
    { 
     $this->load->view('login_view'); 
    } 
    else 
    { 
     $account=$this->account_model->get_user($Username, sha1($Password)); 
     if (count($account)>0) 
     { 
      if ($que->row('activated')==1) 
      { 
       $sess_data=array('login'=>TRUE, 'picture'=>$account[0]->Picture, 'firstname'=>$account[0]->First_Name, 'lastname'=>$account[0]->Last_Name, 'id'=>$account[0]->AID, 'position'=>$account[0]->Position, 'department'=>$account[0]->Department); 
       $this->session->set_userdata($sess_data); 

       if ($_SESSION['position']=="Professor") 
       { 
        echo "<script type='text/javascript'>alert('Welcome to attendance monitoring system, $_SESSION[firstname] $_SESSION[lastname]!');window.location='".base_url("index.php/main")."';</script>"; 
       } 
       else if ($_SESSION['position']=="Department Chair") 
       { 
        echo "<script type='text/javascript'>alert('Welcome to attendance monitoring system, $_SESSION[firstname] $_SESSION[lastname]!');window.location='".base_url("index.php/report")."';</script>"; 
       } 
       else if ($_SESSION['position']=="OSA Faculty"||"Guidance Faculty") 
       { 
        echo "<script type='text/javascript'>alert('Welcome to attendance monitoring system, $_SESSION[firstname] $_SESSION[lastname]!');window.location='".base_url("index.php/faculty")."';</script>"; 
       } 
      } 
      else if ($que->row('activated')==0) 
      { 
       $this->session->set_flashdata('msg', '<div class="alert alert-danger text-center">Login failed! Please click the link on your email address!</div>'); 
       redirect('login'); 
      } 
     } 
     else 
     { 
      $this->session->set_flashdata('msg', '<div class="alert alert-danger text-center">Wrong Username or Password!</div>'); 
      redirect('login'); 
     } 
    } 
} 
+0

'$ que = $ this-> db-> get( 'tblaccount');'を含む行の後に 'var_dump($ que)そのようにして、クエリが返すものと、おそらくあなたのコードがそのやり方と反応するのを見ることができます。参照:http://php.net/manual/en/function.var-dump.php –

+0

ログインしようとしているアカウントのデータベースで 'activated'の値は?それが '0'の場合、エラーはアカウントを起動するコードに存在する可能性があります。私に起こりうる問題のように見えます。 – BugHunterUK

+0

アカウントのデータベースで有効になっている値は1です。 –

答えて

1

コードの一部がわかりません。 実際には、あなたは、まず$this->db->where('Password', $this->input->post('password'));を入れ、その後、$account=$this->account_model->get_user($Username, sha1($Password));

あなたが追加最初の修正する必要があります:私はあなたが提供していませんでしたので、最後の条件が使用されている理由です、実際にあなたの要求は空の行を返すことを考える原因、sha1($this->input->post('password'))をそれ以外はPHPの悪い習慣です。 お知らせください!

+1

あなたの答えから考えて、今は効いています。おかげさまで!私がしたことは、$ this-> db-> where( 'Username'、$ this-> input-> post( 'username')) 'と '$ this-> db-> '、$ this-> input-> post(' password '));' –

+0

あなたは大歓迎です! – John

関連する問題