У меня возникла странная ошибка с сохранением значений формы в CodeIgniter, когда проверка не удалась. Я использую много полей в форме, одним из которых является E-Mail.Codeigniter не сохраняет значение поля E-Mail
Я выполнил правила проверки на E-Mail выглядит следующим образом:
$this->form_validation->set_rules('email','E-Mail',
'trim|required|xss_clean|is_unique[user.user_email]|callback_validateEmail');
validateEmail
функция выглядит следующим образом:
function validateEmail($email){
$this->load->helper('email');
if((!valid_email($email))){
$this->form_validation->set_message('validateEmail',
'The E-Mail you entered is invalid');
return false;
}
}
В форме, я использую следующий код для E-Mail:
<td align="left">
<input type="text" name="email" id="email"
value="<?php echo set_value('email');?>">
</td>
Что происходит, значение E-Mail сохраняется до пользователь вводит недопустимые значения E-Mail, такие как «abc123» или «abc123 @». Но когда пользователь вводит правильный адрес электронной почты, скажем, «[email protected]», и проверка формы не выполняется из-за ошибки в другом поле, значение поля E-Mail не сохраняется и исчезает.
У меня нет подсказки, почему это не удается. Может кто-то прольет какой-то свет?
Спасибо заранее!
CodeIgniter имеет [ 'правило valid_email'] (http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#rulereference), встроенный в библиотеке Form Validation по умолчанию - нет потребность в обратном вызове. –