【问题标题】:CodeIgniter Validation: possible to validate GET query strings?CodeIgniter 验证:可以验证 GET 查询字符串吗?
【发布时间】:2012-06-04 15:32:57
【问题描述】:

表单验证库似乎只适用于 POST。我需要使用查询字符串并想使用 CI 来验证传递的值。有没有办法做到这一点?

【问题讨论】:

标签: codeigniter codeigniter-2


【解决方案1】:

The current Codeigniter 3.0 development branch 提供插入您自己的变量而不是 $_POST 的选项。所以你可以开始使用 3.0。

或者,CI2.1 中的唯一方法是在运行验证之前执行 $_POST=$_GET。

【讨论】:

  • 能否请您提供“插入您自己的变量而不是 $_POST 的选项”?因为我正在迁移到 CI 3.0 并且我所有的 form_validation 都运行良好,除了一个。我收到 GET 值,我想验证它们...我不知道该怎么做,谢谢!
  • 我刚刚发现问题出在哪里... !!!在 CI 3.0 中,他们添加了一些检查。转到系统/库/Form_validation.php。搜索“set_rules”函数并删除该行: if ($this->CI->input->method() !== 'post' && empty($this->validation_data)) { return $this; }
  • 我试过 $_POST = $GET 但验证->run() 仍然返回 FALSE
  • 你需要做$_GET而不是$GET
  • @NicolasThery 抱歉,这是很久以前的事了,我不记得了。我想我会坚持下去,即使这显然不是最好的解决方案!
【解决方案2】:

请参阅此页面了解 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() 之前。

【讨论】:

    【解决方案3】:

    您可以覆盖在 MY_Form_Validation 中运行的 Form_validation 函数并对其进行修改。

    【讨论】:

      【解决方案4】:

      参考How do I validate a form field in Codeigniter when using Get parameters?

      在验证规则之前,用如下代码设置验证数据。

       $this->form_validation->set_data($_GET);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-09
        • 1970-01-01
        • 1970-01-01
        • 2018-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多