4

我正在向运行 PHP 5.3.3.7 的服务器发布大小约为 200KB 的数据。数据实际上是一个带有嵌套属性的 JavaScript 对象,在请求中它看起来像这样myObject[prop1][subprop1][key] = 5

但是,服务器上并未收到所有数据。已发布数据的最后一部分被截断。max_post_size设置为 80MB,所以这不应该是问题。我将请求表单数据与可通过 $_POST 访问的数据进行了比较,发现有很多数据丢失。

PHP 版本是 5.3.3.7。

这可能是什么原因造成的?

4

2 回答 2

4

您说您使用 PHP 5.3.3,但也许这不太正确?从 PHP 5.3.9 开始,有一个新设置max_input_vars限制了一个可以传递给脚本的变量POST(and GET、and COOKIE、等等)的数量。

如果我是对的php.iniVirtualHost definition那么调整它就足够了.htaccessini_setPOST

出于安全原因引入此设置,因此请谨慎: http ://www.phpclasses.org/blog/post/171-PHP-Vulnerability-May-Halt-Millions-of-Servers.html

于 2013-09-28T17:49:34.767 回答
1

在将 POST 发送到服务器之前,从客户端尝试使用 jQuery 并将数据转换为 JSON

   $.ajax({
        method: 'POST',
        url: 'http://someurl.com',
        data: JSON.stringigy(youJsObject),
        success: function(data) {
            // processing data from server
        }
    });
于 2013-09-28T17:40:22.617 回答