php - POST 不发送所有数据

标签 php post

我的屏幕上有大约 135 个复选框

<input type="checkbox" name="orders_id[] value="1"/>
<input type="checkbox" name="orders_id[] value="2"/>
.........
<input type="checkbox" name="orders_id[] value="135"/>

我选中所有复选框并提交,但在 $_POST 中我只看到收到了 107 个复选框。

丢失的数据发生了什么?

我将 POST_MAX_SIZE 更改为 20M,但这并没有解决问题。

我从 Chrome 开发者工具检查了浏览器的 HEADER。我可以在那里看到 所有 135 检查的数据,但是在 PHP 中,当我检查 $_POST['orders_id'] 时,我只得到其中的 107 个。

最佳答案

有了那么多复选框,如果您的表单上还有其他输入,您可能会超出 PHP 的 max_input_vars 设置。 The PHP manual将此设置定义为:

How many input variables may be accepted (limit is applied to $_GET, $_POST and $_COOKIE superglobal separately). Use of this directive mitigates the possibility of denial of service attacks which use hash collisions. If there are more input variables than specified by this directive, an E_WARNING is issued, and further input variables are truncated from the request.

您可以通过增加 php.ini 中的设置或减少表单中的输入数量以适应限制来解决此问题。

关于php - POST 不发送所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39640866/

相关文章:

javascript - 如何从 JSON、PHP 或 javascript 中删除方括号?

php - PHP 中的字符集检测

linux - 访问HTTP请求平台

javascript - AJAX表单提交问题

Django:将请求直接(内联)传递到第二个 View

php - 如何将事件与jquery中通过ajax生成的动态值绑定(bind)

php - Laravel 迁移过程中出现 SQL Error 20006

php - Cloud 9 IDE 无法连接到数据库

xml - 使用 axios 向 SOAP 端点发出请求

c# - 如何使用 C# 将 JSON 发布到服务器?