2013-09-28 32 views
3

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

但是,服务器上没有收到所有数据。发布数据的最后一部分被截断。 max_post_size设置为80MB,所以不应该成为问题。我将请求表单数据与可通过$ _POST访问的数据进行了比较,并且缺少大量数据。

PHP版本是5.3.3.7。

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

+3

向我们展示一些代码。特别是你如何处理发送和接收。 – Mark

+0

数据编码不正确的可能性有多大?你是让浏览器POST还是使用cURL或类似的东西? – alex

回答

3

你说你使用PHP 5.3.3,但也许这是不完全正确?自PHP 5.3.9起,有一个新设置max_input_vars,它可以将一个可以传递给脚本的变量数量限制为POST(以及GETCOOKIE等等)变量。

如果我是正确的,那么它足以调整它在php.iniVirtualHost definition,或.htaccessini_set因为POST将无法​​工作已经修剪你的脚本开始之后)

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

+0

我增加了max_input_vars并解决了我的问题。只考虑解决问题而不是寻找解决方法的唯一答案。谢谢! –

1

从客户端试图使用jQuery和数据转换你JSON,之前发送POST到服务器

$.ajax({ 
     method: 'POST', 
     url: 'http://someurl.com', 
     data: JSON.stringigy(youJsObject), 
     success: function(data) { 
      // processing data from server 
     } 
    }); 
+0

抱歉,您误解了我的问题,请求没有任何问题。这是没有收到所有道具的服务器。 –

相关问题