max_input_vars导致PHP最大表单提交变量上限1000解决方法

公司项目php5.1升级php8.1,测试时,一个大表单提交到后台,接受的参数不全,打印$_POST,发现数据将被自动截断。用浏览器开发者工具检查,post提交参数却都是存在的,
最后百度发现:
PHP从5.3.9开始增加了一个变量max_input_vars,用来提交限制表单数量。 
php.ini中max_input_vars默认为1000。 
将网络中的载荷里所有提交的参数拷贝到编辑器里,发现超过1000行了
将限制数值改大到10000,重启php-fpm就能正常提交了。
ubuntu系统:
vi /etc/php/8.1/fpm/php.ini
service php8.1-fpm reload
虽然修改限制的方式治标不治本,最好还是从源头上改变,提交数据时,将数据整合好,去除不必要的参数,可以将传输的变量转换成json,后台接受后转换成数组。
发表评论 / Comment

用心评论~