Heim >Backend-Entwicklung >PHP-Tutorial >php大form用post方法传递数据丢包的问题

php大form用post方法传递数据丢包的问题

WBOY
WBOYOriginal
2016-07-25 09:05:361897Durchsuche
在生产环境中,一个巨大无比的form,包括三张图片,几百个输入框,近一千个checkbox,在用post方法提交到后台时,数据被拦腰截断。

在生产环境中,一个巨大无比的form,包括三张图片,几百个输入框,近一千个checkbox,在用post方法提交到后台时,数据被拦腰截断。 一路打debug,发现PHP 拿到 $_POST时,数据就不足。 一开始以为是php中的post_max_size, upload_max_size的问题, 但是设成100M也不管用。 后来又以为是Apache 中的limitpostdate的问题,设大了之后也不管用。 后来在客户端装wireShark抓包,发现tcp包中间出现 TCP WINDOWS FULL,于是又以为是浏览器在TCP第二次握手的时候,没有正确传输总package size。 直到最后, 在Apache的error.log中发现, 出了如下错误: PHP Warning: Unknown: Input variables exceeded 1000 原来PHP中默认post中的参数的个数是1000,超过部分会被自动扔掉。

调整下这个数值,比如我们设置为2000: 在PHP.ini中设置 max_input_vars = 2000



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn