php大form用post方式传递数据过多被截取的问题
2015-12-31 11:14
489 查看
环境:
CentOs ver 6.3
php ver 5.3.20
nginx 1.0
昨天生产环境出了个bug,一个巨大无比的post表单,几百个输入框,近一千个checkbox,在用post方法提交到后台的时候, 发现数据被拦腰截断。一路打debug, 发现PHP 拿到 $_POST的时候,数据就不足。一开始以为是php中的post_max_size问题,但是设成100M也不管用
修改下面相关配置后还是没有效果
nginx.conf
#keepalive_timeout 60;
#send_timeout 3m;
client_max_body_size 500m;
php.ini
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
php-fpm.conf
<value name="rlimit_files">65535</value>
<value name="request_terminate_timeout">0s</value>
google一下,原来PHP从5.3.9开始增加一个变量 max_input_vars 用来限制提交的表单数量,折腾了半天,原来php小版本升级引起的不兼容,php中默认post中的参数的个数是1000, 超过部分会被自动扔掉。用 phpinfo()查看max_input_vars。如下图所示:
解决方法很简单,在PHP.ini中设置 max_input_vars = 5000
php.ini 文件里的 max_input_vars 默认值为 1000, 正常情况下够用,偶尔遇到我这种提交2000多个表单的情况还是比较少见的,不过,如果发现提交表单个数不全的情况,可以试试修改这个配置。
tags: php post 数据被截取, php post 数据不完整, php post 丢失数据
CentOs ver 6.3
php ver 5.3.20
nginx 1.0
昨天生产环境出了个bug,一个巨大无比的post表单,几百个输入框,近一千个checkbox,在用post方法提交到后台的时候, 发现数据被拦腰截断。一路打debug, 发现PHP 拿到 $_POST的时候,数据就不足。一开始以为是php中的post_max_size问题,但是设成100M也不管用
修改下面相关配置后还是没有效果
nginx.conf
#keepalive_timeout 60;
#send_timeout 3m;
client_max_body_size 500m;
php.ini
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
php-fpm.conf
<value name="rlimit_files">65535</value>
<value name="request_terminate_timeout">0s</value>
google一下,原来PHP从5.3.9开始增加一个变量 max_input_vars 用来限制提交的表单数量,折腾了半天,原来php小版本升级引起的不兼容,php中默认post中的参数的个数是1000, 超过部分会被自动扔掉。用 phpinfo()查看max_input_vars。如下图所示:
解决方法很简单,在PHP.ini中设置 max_input_vars = 5000
php.ini 文件里的 max_input_vars 默认值为 1000, 正常情况下够用,偶尔遇到我这种提交2000多个表单的情况还是比较少见的,不过,如果发现提交表单个数不全的情况,可以试试修改这个配置。
tags: php post 数据被截取, php post 数据不完整, php post 丢失数据
相关文章推荐
- phpStorm配置svn提示:Can't use Subversion command line client
- php创建桌面快捷方式实现方法
- windows下的ftp
- 干货!!!Yii 1.1操作Cookie
- PHP导入与导出Xml格式的Excel
- BroadcastPractice的单元测试
- 远程删除FTP端文件
- Yii操作cookie
- TP:C43273D1
- 运维不再专业救火 不会PHP照样找出代码性能问题
- 运维不再专业救火 不会PHP照样找出代码性能问题
- yii表单验证大全
- PHP开发者应了解的24个库
- <php+mysql>PHP脚本条件判断,foreach循环,以及粘性表单
- 开启PHP的伪静态模式
- PHP 真正多线程的使用
- php登录页面写法
- editplus-查找替换的正则表达式应用
- editplus-使用正则表达式替换每行首字母和尾字母
- php取数组随机数