【发布时间】:2012-06-04 15:32:57
【问题描述】:
表单验证库似乎只适用于 POST。我需要使用查询字符串并想使用 CI 来验证传递的值。有没有办法做到这一点?
【问题讨论】:
-
你可以让 CodeIgniter 认为它来自 POST,即使它不是。
$_POST = $_GET,也许吧? -
大声笑,整个班级都被硬编码为使用
$_POST。所以除非你完全覆盖它,否则不会。
表单验证库似乎只适用于 POST。我需要使用查询字符串并想使用 CI 来验证传递的值。有没有办法做到这一点?
【问题讨论】:
$_POST = $_GET,也许吧?
$_POST。所以除非你完全覆盖它,否则不会。
The current Codeigniter 3.0 development branch 提供插入您自己的变量而不是 $_POST 的选项。所以你可以开始使用 3.0。
或者,CI2.1 中的唯一方法是在运行验证之前执行 $_POST=$_GET。
【讨论】:
$_GET而不是$GET
请参阅此页面了解 CodeIgniter 3 解决方案:- http://www.codeigniter.com/userguide3/libraries/form_validation.html#validating-an-array-other-than-post
对于 CodeIgniter 2,您可以执行 $_POST = $_GET;如上所述,在 $this->form_validation->run() 之前。
【讨论】:
您可以覆盖在 MY_Form_Validation 中运行的 Form_validation 函数并对其进行修改。
【讨论】:
参考How do I validate a form field in Codeigniter when using Get parameters?
在验证规则之前,用如下代码设置验证数据。
$this->form_validation->set_data($_GET);
【讨论】: