为什么POST数据被PHP截断


Why is POST data truncated by PHP?

我有一个很大的表单,里面有很多项目。升级到PHP7后,在新环境中,服务器无法接收到一些POST元素。$_POST数组不是空的,它包含许多元素,但缺少$_POST数组末尾的一些元素。

没有出现错误消息。

php.ini中增加post_max_size(从8M增加到128M)没有帮助。数据结构本身并不太大,小于400k,所以这不应该是原因。

为什么会这样?

从PHP 5.3.9开始。存在一个名为maxput_vars的新php.ini设置。它确定可以从接收到的数据中使用多少项。默认情况下为1000,这意味着将只使用$_POST中的前1000个项目。

因此,如果增加post_max_size没有帮助,那么尝试将max_input_vars从1000增加到5000,或者您需要的任何值。

更多信息:max_input_vars 的PHP手册