我向运行PHP 5.3.3.7的服务器发布大小约为200KB的数据。
数据实际上是一个具有嵌套属性的JavaScript对象,
在请求中它看起来像这样:myObject[prop1][subprop1][key] = 5
。
但是,服务器上未收到所有数据。发布数据的最后部分被截断。 max_post_size
设置为80MB,因此不应该是问题。我已将请求表单数据与可通过$ _POST访问的数据进行比较,并且缺少大量数据。
PHP版本是5.3.3.7。
导致这种情况的原因是什么?
答案 0 :(得分:3)
你说你使用的是PHP 5.3.3,但也许这不是很正确?从PHP 5.3.9开始,有一个新设置max_input_vars
限制了POST
(以及GET
和COOKIE
的数量,依此类推等等)变量可以传递给剧本。
如果我是对的,那么只需在php.ini
,VirtualHost definition
或.htaccess
中调整它就足够了(ini_set
自POST
起无效脚本启动后已经修剪过了)
出于安全原因引入了此设置,因此请务必谨慎: http://www.phpclasses.org/blog/post/171-PHP-Vulnerability-May-Halt-Millions-of-Servers.html
答案 1 :(得分:1)
从客户端尝试使用jQuery并将数据转换为JSON,然后再将POST发送到服务器
$.ajax({
method: 'POST',
url: 'http://someurl.com',
data: JSON.stringigy(youJsObject),
success: function(data) {
// processing data from server
}
});