>백엔드 개발 >PHP 튜토리얼 >PHP 대형 형식은 데이터 패킷 손실 문제를 전송하기 위해 사후 메소드를 사용합니다.

PHP 대형 형식은 데이터 패킷 손실 문제를 전송하기 위해 사후 메소드를 사용합니다.

WBOY
WBOY원래의
2016-07-25 09:05:361898검색
在生产环境中,一个巨大无比的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



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.