2011-11-14 2 views
0

코드 점화기로 내 사이트를 재구성했으며 사용자 정보를 확인하는 데 문제가 있습니다. 간단히 말하면, 로그인 양식에 횡설수설을 칠할 수 있으며 무엇이든지 '환영'페이지로 이동하게됩니다.코드 점화 장치를 통해 사용자 로그인을 확인할 수 없습니다.

클릭 HERE 사전에 내 코드를

감사를 볼 수 있습니다.

if($query->num_rows = 1) { 

은 다음과 같아야합니다 : 한 문제 이상을 가지고 있지만,이 확실히 그들 중 하나 인 경우 확실하지

+0

세션 데이터가 생성되고 있습니까? 당신은 생성자에'$ this-> output-> enable_profiler (TRUE);'를 추가해야한다. 그런 다음 db 쿼리와 세션 데이터를 검사 할 수있다. - '집/대시 보드'코드를보고 – 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의 대답은 확실히 계속하기 전에 수정해야 뭔가하지만 과제입니다 사실로 평가되어야하고, 반대의 문제가있을 것입니다. 사람들은 아무리 로그인해도됩니다.

세션을 데이터베이스에 저장하거나 쿠키로 저장하고 있습니까? 전에 쿠키를 설정하고 즉시 리디렉션하는 데 문제가있었습니다. 일부 브라우저는 Set-Cookie 대 위치 헤더의 순서에 문제가있는 것으로 보입니다. 머리를 너무 세게 치기 전에 그것을 배제하려고 할 수도 있습니다.

다른 이유로는 A) 어떤 이유로 로그인 페이지로 리디렉션 될 수있는 코드가 B) 라우팅 문제 C) FireBug의 응답 헤더를 추적하여 알아낼 수있는 다른 내용을 포함 할 수 있습니다.

관련 문제