当数据太多时,PHP $ _POST缺少字段

时间:2013-11-01 17:18:53

标签: php ajax forms post

我正在使用jQuery.post,其中一个字段是一个大字符串。这可能是2MB的文字。

jQuery.post请求没问题,但PHP的$_POST数组中不存在此字段。 所有其他发布的字段都很好。这肯定是被发送的,实际上是file_get_contents("php://input")

如果我缩小大字符串的大小,它会再次显示在$_POST数据中。

如何删除此字段大小限制,以便PHP将大字段推送到$_POST

编辑:我将post_max_size更改为100M,但没有改变任何内容。

3 个答案:

答案 0 :(得分:3)

尝试 Increasing the maximum post size 或检查服务器是否有任何额外的限制机制,如 http://www.hardened-php.net/suhosin/

检查您的phpinfo()并查找任何与帖子相关的限制

答案 1 :(得分:2)

这是一个服务器配置。如果您在Linux下使用PHP或类似,您可以使用.htaccess来控制它们,如下所示:

#set max post size
php_value post_max_size 20M

来自What is the size limit of a post request?

答案 2 :(得分:0)

为便于记录,还有其他一些选项可能会导致缺少帖子数据, 一个是max_input_vars,它定义了请求中允许的发布变量的数量。默认情况下,它设置为非常高的值(1000),但是在某些情况下,您可能希望增加该值。

还有max_input_nesting_level可能也是导致嵌套变量(默认情况下为64)的原因。