表单验证不适用于表单 GET 方法
Posted
技术标签:
【中文标题】表单验证不适用于表单 GET 方法【英文标题】:Form validation not working with form GET method 【发布时间】:2020-08-12 11:13:24 【问题描述】:我正在尝试通过method="GET"
而不是POST
发布我的表单。
Codeigniter 的 form_validation->run()
不起作用。
它没有在视图页面中返回任何form_error
。
【问题讨论】:
【参考方案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)
【讨论】:
感谢您的帮助以上是关于表单验证不适用于表单 GET 方法的主要内容,如果未能解决你的问题,请参考以下文章
@Valid 表单验证不适用于 Thymeleaf Spring Boot