转载于:http://54im.com/php-2/php-max-input-vars-default-value-1000-fail-post-form.html
公司内一个php的后台管理系统,之前运行在apache上,后来我给转到nginx+php上后,其他功能运行正常,有一个修改功能提交表单后没有提交成功,查了代码没查出来什么问题,后来看了下php error日志,也没有什么线索,打印post请求后,也发现提交表单个数和正在表单个数对不上(当时怀疑过是不是某个插件是不是没装,字符集对不对等),再看了下php-fpm的日志,有点信息可以参考了。
1
|
[25-Sep-2014 15:19:30] WARNING: [pool www] child 28329 said into stderr: "NOTICE: PHP message: PHP Warning: Unknown: Input variables exceeded 1000.
To increase the limit change max_input_vars in php.ini. in Unknown on line 0"
|
提示input 变量个数超过1000,建议修改php.ini文件中的 max_input_vars,PHP从5.3.9开始增加一个变量 max_input_vars 用来限制提交的表单数量。
妈的,我这个功能(类似于phpmysqladmin功能,读取数据库表,然后能写入编辑,然后数据库字段有128个,然后每个字段有11个input框)大概有1400多个input,(多么痛的领悟,为毛这么吊,研发一个表搞这么多字段),
然后我在php.ini里面加入
1
2
3
|
max_execution_time = 300 ; Maximum execution time of each script, in seconds
max_input_time = 300 ; Maximum amount of time each script may spend parsing request data
max_input_vars = 2000
|
重启php-fpm后,功能正常了。看日志很重要。