我的屏幕上有大约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 检查数据,但是当我检查$_POST['orders_id']
时,我会在PHP中找到107个。
答案 0 :(得分:2)
使用这么多复选框,如果表单上有其他输入,则可能超出了PHP max_input_vars
设置。 The PHP manual将此设置定义为:
可以接受多少输入变量(限制分别应用于$ _GET,$ _POST和$ _COOKIE superglobal)。使用此指令可以减少使用哈希冲突的拒绝服务攻击的可能性。如果输入变量多于此指令指定的输入变量,则会发出E_WARNING,并从请求中截断其他输入变量。
您可以通过增加php.ini中的设置或减少表单中的输入数量以适应限制来解决此问题。