CodeIgniter验证:是否可以验证GET查询字符串?
表单验证库似乎只适用于POST。我需要使用查询字符串,并希望使用CI来验证传递的值。有没有办法做到这一点?提供了一个选项,可以插入您自己的变量,而不是$\u POST。所以你可以开始使用3.0CodeIgniter验证:是否可以验证GET查询字符串?,codeigniter,codeigniter-2,Codeigniter,Codeigniter 2,表单验证库似乎只适用于POST。我需要使用查询字符串,并希望使用CI来验证传递的值。有没有办法做到这一点?提供了一个选项,可以插入您自己的变量,而不是$\u POST。所以你可以开始使用3.0 或者,在CI2.1中,唯一的方法是在运行验证之前执行$\u POST=$\u GET。您可以覆盖在MY\u Form\u验证中运行的Form\u验证函数并对其进行修改。有关CodeIgniter 3解决方案,请参见本页:- 对于CodeIgniter 2,您可以执行$\u POST=$\u GET;在$
或者,在CI2.1中,唯一的方法是在运行验证之前执行$\u POST=$\u GET。您可以覆盖在MY\u Form\u验证中运行的Form\u验证函数并对其进行修改。有关CodeIgniter 3解决方案,请参见本页:- 对于CodeIgniter 2,您可以执行$\u POST=$\u GET;在$this->form_validation->run()之前,如上所述 参考 在验证规则之前,请使用以下代码设置验证数据
$this->form_validation->set_data($_GET);
您可以让CodeIgniter认为它是来自POST,即使它不是
$\u POST=$\u GET
,也许?哈哈,整个类都是硬编码的,使用$\u POST
。因此,除非您完全覆盖它,否则不可能重复我的答案。请您提供“插入您自己的变量而不是$\u POST的选项”好吗?因为我正在迁移到CI 3.0,我所有的表单验证都运行良好,只有一个例外。我收到GET值,我想验证它们。。。我不知道该怎么办,谢谢!我刚发现问题出在哪里!!!在CI 3.0中,它们添加了一点检查。转到system/libraries/Form_validation.php。搜索“set_rules”函数并删除以下行:if($this->CI->input->method()!='post'&&empty($this->validation_data)){return$this;}我尝试了$_post=$GET,但是validation->run()仍然返回false你需要做的是$\u GET
而不是$GET
@nicolastery很抱歉,很久以前我记不清了。我想我会坚持下去,即使这显然不是最好的解决方案!