【问题标题】:Form validation not working with form GET method表单验证不适用于表单 GET 方法
【发布时间】:2020-08-12 11:13:24
【问题描述】:

我正在尝试通过method="GET" 而不是POST 发布我的表单。

Codeigniter 的 form_validation->run() 不起作用。

它没有在视图页面中返回任何form_error

【问题讨论】:

    标签: php codeigniter validation getmethod


    【解决方案1】:

    form_validation 的概念是基于使用 POST,因为表单验证函数form_validation->run() 使用 POST 构建其验证数组。

    请参阅 Codeigniter public function run() system/libraries/Form_validation.php 的第 417 行附近:

    $validation_array = empty($this->validation_data)
              ? $_POST
              : $this->validation_data;
    

    但正如@Hasta Dhana 的回答中所指出的,您可以使用 $_GET 或任何其他数组,例如:

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

    如果你想validate an array that does not originate from $_POST data。然后这个数组在 if 子句中取代$this->validation_data

    【讨论】:

    • 但是如何验证我的输入?
    • 请关注Form Validation
    • 感谢您的帮助
    【解决方案2】:

    如果你必须使用$_GET,你可以在验证规则之前设置验证数据:

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

    见:Validating an Array (other than $_POST)

    【讨论】:

    • 感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2021-11-10
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 2016-12-13
    • 1970-01-01
    • 2018-10-01
    相关资源
    最近更新 更多