数组在ajax帖子上被砍掉Ajax发布限制?

问题描述

您需要打开php.ini文件并设置(或创建)以下行:

max_input_vars = 1000000

max_input_vars的默认值是1000,这将切断一个数组,其中元素总数为1000。只需将其更改为一个非常高的数字(就我而言,我需要将其设置为一百万)。

从PHP手册:

可以接受多少个输入变量(限制分别应用于$ _GET,$ _ POST和$ _COOKIE超全局变量)。使用此指令可减轻使用哈希冲突的拒绝服务攻击的可能性。如果输入变量多于此伪指令指定的数目,则发出E_WARNING,并从请求中截断更多输入变量。

如手册所述,此默认限制是为了防止拒绝服务攻击而设置的。

希望这会有所帮助,即使这是一个老问题。

解决方法

我有一个多维数组,其中包含426个较小的数组,其中还包含4个属性。.下面是426个数组之一的示例…

    array( //Main array
          0 => array( //1 of 426 arrays
               'name' => 'Danny','email' => 'your@email.com','picture_url' => 'http://www.website.com','score' => 89
          ),)

我正在将带有jquery的ajax函数的数组发布到php文件,这会将它们添加到数据库中。我的问题是,数组在发布到php文件时似乎被砍掉了。实际上只有大约一半的数组到达了php文件…

这使我相信通过ajax发布时可能存在文件大小限制。但是,我的数组大小似乎相对较小。

我正在WAMP上运行我的应用程序。

谁能阐明一些可能发生的情况?

更新:

我像这样发布我的数组:

$.ajax({
  type: "POST",url: "invite_friends.php",data: {
    theID: me.id,friends: multidimensional_array //This is the array <---
  },success: function(data,textStatus,jqXHR) {
    return console.log(data);
  },error: function(jqXHR,errorThrown) {
    return alert("Error: Oops,there has been a problem");
  }
});

然后像这样检索我的数组(在invit_friends.php中)。

if($_POST['friends']) {
    $friends = $_POST['friends'];   
} else {
    $friends = FALSE;
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...