我有很多
<input type="checkbox" name="course_id[]" value="xxx"/>
以我的形式。但是$_POST['course_id']
只提交了部分值。
例如,我发布了course_id[]=1&course_id[]=2&course_id[]=3&course_id[]=4
,但$_POST['course_id']
是["1","2","3"].
在实际情况中,发布了超过1000个course_ids,但$_POST['course_id']
只有约990个course_id。
我已经通过tshark捕获了HTTP包,发现course_id []的所有值都发布到了PHP。
PHP版本是5.5.9
答案 0 :(得分:0)
在PHP配置中,POST限制为特定大小。根据当然的数量,也许你达到了这个限制。
您可以检查此值post_max_size
答案 1 :(得分:0)
我怀疑您遇到的问题是max_input_vars
设置为默认值1000.我认为您发送了10个其他参数,然后990 course_ids
最大限制为1000。达到该限制,您可以发送超过1000个参数。
您可以在手册的页面http://php.net/manual/en/info.configuration.php#ini.max-input-vars上阅读更多内容。
从手册:
Name Default Changeable Changelog
max_input_vars 1000 PHP_INI_PERDIR Available since PHP 5.3.9.
可以接受多少输入变量(限制分别应用于$ _GET,$ _POST和$ _COOKIE superglobal)。使用此指令可以减少使用哈希冲突的拒绝服务攻击的可能性。如果输入变量多于此指令指定的输入变量,则会发出E_WARNING,并从请求中截断其他输入变量。
但请记住此设置的目的:
使用此指令可减轻拒绝服务攻击的可能性。