Я использую CodeIgniter с помощью следующего кода:CodeIgniter VALID_EMAIL() Функция не работает должным образом
$this->load->library('form_validation');
$this->form_validation->set_error_delimiters('<font color="red">', '</font>');
$this->load->helper('email');
$this->form_validation->set_rules('name', 'Member name', 'required|trim|max_length[31]');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|trim|max_length[50]');
$this->form_validation->set_rules('address', 'Mailing address', 'required|trim|max_length[41]');
# Additional fields here
if (!$this->form_validation->run()) {
# Go back to the form. This is not occuring.
}
else {
# This view is being loaded, but with an error on the page. Picture below.
$this->load->view('success_new', array('email' => set_value('email')));
}
Когда форма отправлена, она должна вернуться в форму, если произошла ошибка. Адрес электронной почты, который я тестирую, - это [email protected], который, очевидно, действителен. Почему, когда я попадаю на страницу успеха, я вижу сообщение об успешном завершении, а также «Недействительный адрес электронной почты?».
Я проверил представление, проверил код контроллера, все, и нигде он не должен выводить какие-либо ошибки, если он прошел проверку. Есть ли известная проблема с этой методикой валидации valid_email()
? Если да, то какова наилучшая проверка RegEx для электронной почты в этой ситуации.
Вот изображение success_new. Нигде в представлении не отражается никаких ошибок.
Там не проблема с проверкой CodeIgniter электронной почты, я использую, поскольку долгое время не встречая никаких проблем. –
Можете ли вы разместить больше кода, например, где вы задали это сообщение? – slapyo
Несвязанное примечание: действительный адрес электронной почты может использовать более 50 символов. Команда [PHP] (https://github.com/php/php-src/blob/master/ext/filter/logical_filters.c#L503) утверждает: «Максимальная длина адреса электронной почты составляет 320 октетов, RFC 2821 ". –