2013-04-09 3 views
1

У меня возникла странная ошибка с сохранением значений формы в 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 не сохраняется и исчезает.

У меня нет подсказки, почему это не удается. Может кто-то прольет какой-то свет?

Спасибо заранее!

+3

CodeIgniter имеет [ 'правило valid_email'] (http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#rulereference), встроенный в библиотеке Form Validation по умолчанию - нет потребность в обратном вызове. –

ответ

1

Функция не возвращает true для действительных писем.

Попробуйте вернуть true, когда письмо верное.

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; 
    } 
return true; 
} 
+0

Вау! Благодаря! Он работает, но если бы вы могли объяснить, что значение set_value связано с возвращаемыми значениями, это было бы здорово. Спасибо, в любом случае:) –

Смежные вопросы