Проверка формы CodeIgniter valid_email не работает - PullRequest
3 голосов
/ 03 февраля 2012

Я пытаюсь использовать класс проверки формы CodeIgniter.Я использовал параметр valid_email, как видно из приведенного ниже кода, но даже если введен неверный адрес электронной почты, он все равно проходит проверку проверки.Я проверил со строкой: testing123

public function login()
{   
    $this->form_validation->set_rules('authEmail', 'trim|required|valid_email|xss_clean');
    $this->form_validation->set_rules('authPassword', 'trim|required');

    $email = $this->input->post('authEmail');
    $password = $this->input->post('authPassword');

    if($this->form_validation->run() === FALSE) {
        $this->session->set_flashdata('formValidationError',  validation_errors('<p class="error">', '</p>'));
        redirect('/');
    } else {
        // Begin authentication
    }
}

Кто-нибудь есть какие-либо идеи, что я делаю неправильно или это проблема CodeIgniter?Я устанавливаю сеанс flashdata вместо использования:

<?php echo validation_errors(); ?>

... это потому, что я делаю перенаправление на домашнюю страницу (которая является страницей входа, поскольку это частный сайт).

Ответы [ 2 ]

6 голосов
/ 03 февраля 2012

Попробуйте это:

public function login()
{   
    $this->load->library('form_validation');

    $this->form_validation->set_rules('authEmail', 'Email', 'trim|required|valid_email|xss_clean');
    $this->form_validation->set_rules('authPassword', 'Password', 'trim|required');

    if($this->form_validation->run() !== false){
    //validation passed
    $email = $this->input->post('authEmail');
    $password = $this->input->post('authPassword');
     // Begin authentication
    }
    else {
        $this->session->set_flashdata('formValidationError',  validation_errors('<p class="error">', '</p>'));
        redirect('/');
    }
}
1 голос
/ 03 февраля 2012

Я только учусь его использовать, но вам не нужны три параметра?Это с их страницы подтверждения формы:

$this->form_validation->set_rules('email', 'Email', 'required');

С http://codeigniter.com/user_guide/libraries/form_validation.html#validationrules

The field name - the exact name you've given the form field.

A "human" name for this field, which will be inserted into the error message. For example, if your field is named "user" you might give it a human name of "Username". Note: If you would like the field name to be stored in a language file, please see Translating Field Names.

The validation rules for this form field.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...