Php Codeigniter 3无法访问错误消息

Php Codeigniter 3无法访问错误消息,php,forms,validation,codeigniter,Php,Forms,Validation,Codeigniter,我对Codeigniter 3中的set_rules函数有问题 我检查用户电子邮件: $this->form_validation->set_rules('email', 'Email', 'required|trim|xss_clean|valid_email'); 当我发布此错误时: 无法访问与您的域名电子邮件对应的错误消息。全局覆盖规则将在下一步使用自定义消息对其进行扩展: $this->form_validation->set_rules('email', 'E

我对Codeigniter 3中的set_rules函数有问题

我检查用户电子邮件:

$this->form_validation->set_rules('email', 'Email', 'required|trim|xss_clean|valid_email');
当我发布此错误时:


无法访问与您的域名电子邮件对应的错误消息。

全局覆盖规则将在下一步使用自定义消息对其进行扩展:

$this->form_validation->set_rules('email', 'Email', 'required|trim|xss_clean|valid_email',
        array('xss_clean' => 'Error Message: your xss is not clean.')
);

从codeigniter github:

关于XSS清理的一个很大程度上未知的规则是,它只应该 应用于输出,与输入数据相反

我们的自动和全局XSS也犯了这个错误 清理特性(请参阅上面关于XSS的步骤),因此现在 为了阻止这种做法,我们还删除了“xss_clean” 来自官方支持的表单验证规则列表

由于表单验证库通常验证输入数据,因此 “xss_clean”规则根本不属于它

如果你真的,真的需要应用这个规则,你现在也应该 加载安全帮助程序,它作为常规函数包含xss_clean(),因此也可以用作验证规则

链接:

如果您真的需要它,请转到application/config/autoload.php:

$autoload['helper'] = array('security');
或者,在表单验证之前

$this->load->helper('security');
xss_clean不再是表单验证的一部分。 另一种选择是不使用它,因为xss_clean正在进行消毒而不是验证。 xss_clean是安全助手的一部分。如果您需要这样做,在验证之后,您可以这样做

此外,还可以在config.php文件中启用全局xss筛选

$config['global_xss_filtering']=TRUE


其他人也提到了这一点,但没有人简洁地说,修复此错误的方法是从验证规则中删除
xxs_clean
。我自己刚刚遇到这个问题,多亏了这里提供的提示,我才能够解决这个问题

这:

变成这样:

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

请在autoload.php上加载
security
Helper

$autoload['helper'] = array('security');
无需再做任何事情。

您应该使用

$this->load->helper('security'); 
您也可以在config/autoload.php中使用下面的代码,但我更喜欢使用上面的代码。因为,它保持了Codeigniter lite的重量

$autoload['helper'] = array('security');

您是否已更改默认语言?你的输入名是“email”吗?这是我的输入名“email”,不,我不更改默认语言检查文件系统/language/english/form_validation_lang.php是否存在,但如果我删除这个xss_clean works fine,你是否从CI2迁移了你的应用程序?是的,使用$autoload['helper']=array('security');工作正常,thx:)使用autoload.php加载安全助手。最好使用此帮助程序来创建一个安全的应用程序。您的答案中有一点输入错误:
$this->form_validation->set_rules('email','email','required | trim | xss|u clean | valid| email',array('xss|u clean'=>'错误消息:您的xss不干净')@SebastianPalma谢谢,修正了。
$this->load->helper('security'); 
$autoload['helper'] = array('security');