【问题标题】:Codeigniter does not keep E-Mail Field ValueCodeigniter 不保留电子邮件字段值
【发布时间】:2013-04-01 10:57:28
【问题描述】:

当验证失败时,我在 CodeIgniter 中保留表单值时遇到了一个奇怪的错误。 我在一个表单中使用了许多字段,其中一个是电子邮件。

我已经实现了电子邮件的验证规则如下:

$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;
        }
    }

在表单中,我在电子邮件字段中使用以下代码:

<td align="left">
   <input type="text" name="email" id="email" 
          value="<?php echo set_value('email');?>">
</td>

发生的情况是,当用户输入无效的电子邮件值时,电子邮件值会被保留,例如 "abc123" 或 "abc123@" 。但是当用户输入正确的电子邮件地址时,例如“abc@yahoo.com”,并且由于其他字段中的错误而导致表单验证失败,电子邮件字段的值不会被保留并且它会消失。

我不知道为什么会失败。有人可以给点灯吗?

提前感谢您!

【问题讨论】:

  • CodeIgniter 默认在表单验证库中内置了 valid_email rule -- 无需回调。

标签: php codeigniter validation codeigniter-2


【解决方案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;
 }

【讨论】:

  • 哇!谢谢!它有效,但如果你能解释 set_value 与返回值有什么关系,那就太好了。还是谢谢:)
猜你喜欢
  • 2018-08-06
  • 2016-05-27
  • 2014-07-05
  • 2018-07-10
  • 2015-04-09
  • 2020-06-16
  • 1970-01-01
  • 2015-10-08
  • 1970-01-01
相关资源
最近更新 更多