我似乎在我正在处理的PHP脚本中达到了max_input_vars
的限制。我知道我可以增加限制(这是我在重构脚本时所做的)但我不希望这是最终解决方案。
我认为max_input_vars
的工作方式是,数组的每个嵌套级别都会分配少量max_input_vars
的元素。
假设$array1[999][999]
的值设置为1000,那么诸如max_input_vars
之类的二维数组就可以了。
但是,如果将$array2[1010][2]
等二维数组设置为1000,则会违反该值。
我的理解是否正确?如果没有,这个设置真的有用吗?
为了完成,我的POST字符串如下所示:
注意:我在浏览器检查器中将此权限复制到"表单数据"请求的一部分。我获取了URL编码值并将其传递给parse_str
以使其可读。
array(172) {
["line_1"]=>
string(11) "1_85021_1_2"
["line_2"]=>
string(11) "1_85038_1_2"
...
["line_167"]=>
string(11) "1_85077_1_2"
["QUANTITY"]=>
array(167) {
["1_85021_1_2"]=>
string(6) "118685"
["1_85038_1_2"]=>
string(6) "237520"
...
...
}
["DATE1"]=>
array(167) {
["1_85021_1_2"]=>
string(0) ""
["1_85038_1_2"]=>
string(0) ""
...
...
["SPLIT"]=>
array(167) {
["1_85021_1_2"]=>
string(1) "2"
["1_85038_1_2"]=>
string(1) "0"
...
...
}
["DATE2"]=>
array(166) {
["1_85021_1_2"]=>
string(0) ""
["1_85038_1_2"]=>
string(10) "08/08/2017"
...
...
}
["COMMENT"]=>
array(166) {
["1_85021_1_2"]=>
string(0) ""
["1_85038_1_2"]=>
string(6) "test21"
...
...
}
对于详细程度,我得到的确切错误是:
PHP Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0
答案 0 :(得分:1)
对于单个维度,每个数组元素都是它自己的变量:
array1%5B%5D=1 & array1%5B%5D=1
对于两个维度:
array1%5B1%5D%5B0%5D=1 & array1%5B2%5D%5B0%5D=1
如果设置为1000,则array1[999][999]
会违反max_input_vars
,因为array1[0][0]
彻底array1[0][999]
是1000个变量。在这种情况下,添加array1[1][0]
会将其超过1000并生成:
警告:未知:输入变量超过1000.要在php.ini中增加限制更改max_input_vars。在第0行的未知中