duanbi8089
2012-04-10 06:19
浏览 121
已采纳

PHP / JSON:收到$ _POST数组不完整

Around 100 rows of data are posted using $.post (JQuery) as JSON array. But for some reason not all rows are received.

The data looks more or less like this (contents are basically numbers and small strings):

rows = [["U", "0", "81949", 32 more...], ["U", "0", "81950", 32 more...] ..... ]

The way I'm sending the data is:

$.post(url+"callback=?", { data : rows }, function(){}, "json");

If I echo the number of rows (count($_POST)) received in my local version it shows "100", but at the production server it displays "25" (every time is the same amount).

Checking the request details in firebug, it shows correctly that all 100 has been sent.

I though it could be the PHP "post_max_size" value, but I had it set to "100M", which I think is by far enough.

I'm pretty sure it has to be with the server settings, but I'm out of ideas... Thanks in advance.

UPDATE:

  • The production server has 8GB of Memory, which is using about half of it (it is not a memory issue).
  • There is no timeout (all the process is done in about 3 seconds).

图片转代码服务由CSDN问答提供 功能建议

使用$ .post(JQuery)作为JSON数组发布大约100行数据。 但由于某种原因没有 收到所有行。

数据看起来或多或少像这样(内容基本上是数字和小字符串):

  rows =  [[“U”,“0”,“81949”,32更多......],[“U”,“0”,“81950”,32更多...] .....] 
   
 
 

我发送数据的方式是:

  $ .post(url +“callback =?”,{data  :rows},function(){},“json”); 
   
 
 

如果我回显在本地收到的行数(count($ _ POST)) 它显示“100”版本,但在生产服务器上显示“25”(每次都是相同的数量)。

检查firebug中的请求详细信息,它正确显示已发送所有100个。

我虽然它可能是PHP“post_max_size”值,但我把它设置为“100M”,我认为这已经足够了。 < p>我很确定它必须与服务器设置有关,但我没有想法...... 提前谢谢。

更新:

  • 生产服务器有8GB的内存,占用了大约一半的时间(这不是内存问题)。
  • 没有超时(所有过程都在大约3秒内完成)。
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • doudeng2025 2012-04-10 06:52
    已采纳

    Is your production server using suhosin? Suhosin is often a culprit for limiting the request sizes, both GET and POST. They have separate limits for POST and GET sizes (and in fact one affects the other from what I remember, thus both have to be increased).

    Take a look at your phpinfo() and see if there's anything about suhosin there.

    Suhosin values that may affect you:

    • suhosin.get.max_vars
    • suhosin.post.max_vars
    • suhosin.request.max_vars

    (+ their equivalents for value and var length)

    Also, if you're uploading files, then this too is limited by suhosin:

    • suhosin.upload.max_uploads (which is, consequently, 25 by default)
    评论
    解决 无用
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题