[解決方法] php大form用post方式傳遞數據過多被截取的問題


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 丟失數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM