gpt4 book ai didi

codeigniter - 避免对 CodeIgniter 中的非必填字段进行表单验证强制检查

转载 作者:行者123 更新时间:2023-12-05 01:03:20 25 4
gpt4 key购买 nike

我有一个电子邮件字段,在我的表单验证中不是必需的。它应该可以留空。但是,当我使用表单验证的 set_rules 的“valid_email”参数时,它仍然会给出一个错误消息,即如果该字段未填写,则不应检查该电子邮件是无效的。

最佳答案

规则引用

查看reference关于这件事告诉我们以下关于 valid email 规则:

Returns FALSE if the form element does not contain a valid email address.

对于空字段以及具有错误值的字段都是如此。

修剪

我注意到在 CodeIgniter 提供的示例中,电子邮件通常不仅是必需的,而且必须是有效的电子邮件,而且还会被修剪。这可能会导致不同的结果。

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

在验证过程中,考虑以下几点:

// If the field is blank, but NOT required, no further tests are necessary
if ( ! in_array('required', $rules) AND is_null($postdata))

您的电子邮件字段的内容可能不完全是 null,因此会引发 valid_email 要求的标记。

可能的相关错误

在此答案日期之前三个月,有关此主题的 bitbucket 进行了讨论。讨论可以在 https://bitbucket.org/ellislab/codeigniter-reactor/issue/117/input-fields-are-automatically-required 查看 .

据说在标记中使用数组语法(见下文)会导致类似的错误,即使未设置 required 规则:

<input name="user[email]" />

更多讨论和补丁,请点击此处,http://codeigniter.com/forums/viewthread/159243 .一个似乎可以解决问题的建议补丁是在上述代码中用 empty() 替换 is_null() 调用:

所以如下:

if ( ! in_array('required', $rules) AND is_null($postdata))

变成:

if ( ! in_array('required', $rules) AND empty($postdata))

关于codeigniter - 避免对 CodeIgniter 中的非必填字段进行表单验证强制检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6480719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com