Проверка формы CodeIgniter - как сделать ее без учета регистра - PullRequest
2 голосов
/ 21 ноября 2011

Я использую Code Igniter 2, и следующий код не проверяется в случае, если пользователь ввел один и тот же адрес электронной почты, но в разных случаях, например: email@bob.com и Email@bob.com.проверить, если это один и тот же адрес электронной почты, даже если пользователь использовал разные случаи.

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

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

    $this->load->view('login_view', $data);
}
else
{

Ответы [ 3 ]

2 голосов
/ 21 ноября 2011

Любая функция PHP, которая принимает один параметр, может использоваться в классе проверки.

С руководство

Любая встроенная функция PHP, которая принимает один параметрможет использоваться как правило, например htmlspecialchars, trim, MD5 и т. д.

Это означает, что вы можете просто изменить правило проверки на

$this->form_validation->set_rules('email', 'Email', 'required|valid_email|strtolower|trim');

Обратите внимание на использование функция strtolower () в правилах.

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

Сделайте это как:

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

//then the callback function

function _check_email() {
  $email = strtolower($this->input->post("email");
  $email = trim($email);
  return $this->form_validation->valid_email($email);
}

Надеюсь, это поможет

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

Вам необходимо создать функцию обратного вызова внутри вашего контроллера:

function valid_case_insensitive_email($str){
    $str = strtolower($str)
    return $this->form_validation->valid_email($str)
}

Затем измените set_rules на этот

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

В качестве альтернативы вы можете расширить класс form_validation и перезаписать valid_email функция.

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