Невозможно подтвердить логин пользователя с помощью воспламенителя кода - PullRequest
0 голосов
/ 14 ноября 2011

Я перестраиваю свой сайт с помощью средства воспламенения кода, и у меня возникают проблемы с проверкой информации пользователей.Проще говоря, я могу набрать тарабарщину в форме входа в систему, и она приведет меня на страницу приветствия, несмотря ни на что.

Заранее спасибо.

Ответы [ 3 ]

5 голосов
/ 14 ноября 2011

Не уверен, если у вас более одной проблемы, но это определенно одна из них:

if($query->num_rows = 1) {

Это должно быть:

if($query->num_rows() == 1) {
0 голосов
/ 15 ноября 2011

Ответ Minboost - это определенно то, что вы должны исправить, прежде чем продолжить, но задание должно принять значение true, и у вас возникнет противоположная проблема. Люди будут входить в систему, несмотря ни на что.

Вы храните сессии в базе данных или с куки? У меня были проблемы с настройкой файлов cookie, а затем с немедленным перенаправлением. Некоторые браузеры, похоже, имеют проблемы с порядком расположения заголовков «Cookie» и «Расположение». Вы можете попытаться исключить это, прежде чем сильно ударить головой.

Другие возможности включают A) код, который вы нам не показываете, который по какой-то причине может перенаправлять обратно на страницу входа, B) проблемы с маршрутизацией, C) что-то еще, что вы можете выяснить, отслеживая заголовки ответов в FireBug. 1005 *

0 голосов
/ 15 ноября 2011

Что делает $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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...