Codeigniter выдает пустую страницу после отправки формы

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

У меня установлен режим разработки в режиме index.php и E_ALL в php.ini, и я успешно получаю ошибки на некоторых других страницах.

Контроллер для /account/login:

public function login()
{
    echo "made it back into controller";
    $this->load->helper('form');
    $this->load->library('form_validation');

    $data['title'] = "Log in";

    $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean');
    $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean');

    if ( $this->form_validation->run() === FALSE )
    {
        echo "unable to validate";
        $this->load->view('templates/header', $data);
        $this->load->view('account/login', $data);
        $this->load->view('templates/footer', $data );
    } 
    else
    {
        echo "attempting to login";
        if ( $this->account_model->login() == FALSE ) 
        {
            echo "failed";
            $this->load->view('templates/header', $data);
            $this->load->view('account/login', $data);
            $this->load->view('templates/footer', $data );
        }
        else
        {
            echo "success";
            $this->load->view('templates/header', $data);
            $this->load->view('account/successfullogin', $data);
            $this->load->view('templates/footer', $data );
        }
    }

}

Метод login() из модели, вызываемый контроллером:

public function login ()
{

    require 'application/libraries/PasswordHash.php';

    $t_hasher = new PasswordHash(8, FALSE);
    $password = $this->input->post('password');
    $hash = $t_hasher->HashPassword($password);
    echo "hashed";

    $query = $this->db->query('SELECT `login_token` FROM `Users` WHERE `username` = "'.$this->input->post('username').'" AND `password` = "'. $this->input->post('password').'"');

    echo "query made";
    $rowCount = $query->num_rows();
    echo "query counted";

    if ( $rowCount == 1 ) {
        echo "found row";
        $token = $query->result_array();
        echo "found token";
        $this->input->set_cookie( 'session_token', $token['login_token'], time()+259200, '/', 'notyetcreated.phpfogapp.com');
        echo "cookie created";
        return TRUE;
    } else {
        echo "no beans";
        return FALSE;
    }
}

С сообщениями отладки, которые я настроил, после отправки формы я получаю «вернулся в контроллер, пытаясь войти в систему», и все. Любые идеи относительно того, что может быть причиной этого?


person Eric    schedule 10.10.2012    source источник
comment
замените === на == в проверке формы и проверьте   -  person Bhuvan Rikka    schedule 10.10.2012
comment
@BhuvanRikka Конечный результат не меняется   -  person Eric    schedule 10.10.2012


Ответы (1)


Измените это условие в контроллере

 if ( $this->form_validation->run() === FALSE )

Вы можете узнать больше на http://ellislab.com/codeigniter/user_guide/libraries/form_validation.html

person Pramod Kumar Sharma    schedule 10.10.2012
comment
Как мне изменить это условие? Это проверяет форму на основе правил, установленных в контроллере, и, если они проходят, возвращает true, иначе false. Я чувствую, что он используется правильно. Если нет, то не могли бы вы указать, как? - person Eric; 10.10.2012