PHP max_input_var设为了1000导致post数组太多时无法接受后面的参数值

Posted WinsonXu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP max_input_var设为了1000导致post数组太多时无法接受后面的参数值相关的知识,希望对你有一定的参考价值。

PHP max_input_var设为了1000导致post数组太多时无法接受后面的参数值

 

下午突然接到格力电话说无法批量设置门店任务,但是在测试环境下无法重现,测试环境下好好的。

然后登陆到生产环境下,选择了几个保存也是正常的。但是当全部提交的时候就会不行了,num参数后台接收不到

我分析了传入的报文,是有这个参数的,但是后台拿不到,这个就很诡异。在生产环境上打了断点来调试,没看出什么情况。

后面查看源代码时留意到post过来的array只有999

有没有这么巧呀,只有999家门店?去后台看了一下,有两千多家门店

问题是定位到了,但是为什么post不了这么多条数据呢?

先是把form的enctype默认是application/x-www-form-urlencoded。我以为因为这个传法只能传1000以内的,所以改成了multipar/form-data。问题没有解决

 

然后面向百度编程。查资料,发现php有个配置max_input_var是限制input数量的。我把这个改成了1万。提交,成功,哈,三个多小时就这么过去了。

 

总结:

在php的配置文件里有很多配置项。理解这些配置项有助于调优php。并能解决很多诡异的问题。

相近的配置还有:

max_execution_time = 600

max_input_time = 600

memory_limit = 32m

file_uploads = on

upload_tmp_dir = /tmp

upload_max_filesize = 32m

post_max_size = 32m

 

nginx中相近的配置有:

keepalive_timeout  60;

send_timeout 3m;

client_max_body_size 500m;

 

nginx和php的配置要经常要关联在一起调

 

以上是关于PHP max_input_var设为了1000导致post数组太多时无法接受后面的参数值的主要内容,如果未能解决你的问题,请参考以下文章

使用 ini_set 设置 max_input_vars PHP.ini 指令

PHP接收表单数组过大导致的问题

仅增加一个 PHP 页面的 Max_input_vars 限制

前端提交大量数组至PHP后台,数据被截断

为啥 PHP 循环在 250 次循环后会导致禁止页面?

PHP中max_input_nesting_levelmax_input_vars的坑