当前位置: 首页 > 面试题库 >

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

丁钟展
2023-03-14
问题内容

我有一个多维数组,其中包含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, textStatus, errorThrown) {
    return alert("Error: Oops, there has been a problem");
  }
});

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

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

问题答案:

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

max_input_vars = 1000000

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

从PHP手册:

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

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

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



 类似资料:
  • 问题内容: 我正在编写一个小脚本来捕获链接点击,并将链接的URL保存到数据库表中,以便跟踪在特定页面上每个链接被点击了多少次。链接是指向外部站点的。 因此,我在JavaScript函数中捕获了click事件,使用jQuery发布到将数据保存在MySQL中的PHP页面,然后JavaScript函数将用户重定向到他们单击的链接的URL。 我遇到的问题是,由于重定向的原因,该帖子似乎从未完成。我已经通过

  • 我想做一个在线测验。我用socket.io只是听节点,仅此而已。需要使用ajax检索问题和回答他们从数据库与PHP.我生成随机数在app.js(节点js服务器文件)。' 插座发出(“问题”,随机数); '客户端: 插座关于(“问题”,功能(数据){ $. post("question.php",{"id": data},函数(res){ $('#问题区'). html(res); }); });

  • 问题内容: 我通过Ajax将ckeditor内容发布到php。但是在我的数据库表中得到4-5句已发布材料的句子。我想知道,ajax发布有大小限制吗?有什么办法可以通过ajax发布大文本内容? 我的js看起来像这样 问题答案: HTTP规范没有为帖子强加特定的大小限制。它们通常会受到Web服务器或用于处理表单提交的编程技术的限制。 您使用哪种服务器?

  • 问题内容: 我正在使用DataTables。我想让用户选择多个行并将其删除。到目前为止,我可以使用它,因此它使用下面的代码删除选择的第一行。 Ajax代码: Django代码: 我如何更新它以将所有行ID传递给Django后端?我想我需要发布anSelected数组,但不确定如何执行此操作。处理该整数数组需要什么Django代码? 问题答案: 您需要使用,例如,如果要传递anSelected数组,

  • 我有一个现有的AJAX GET脚本,它正在工作,并通过URL将数据传递回我的PHP代码。 由于我现在想要发送的数据,我想将AJAX更改为POST。 我已经用下面的JSON格式创建了一些数据 然后传递到下面的函数 Chrome给了我一个403禁止的错误,我似乎无法解决哪里出了问题。 铬错误 谢谢!!:)

  • 问题内容: 我正在尝试将表单数据发布到Google电子表格。当前,如果表单经过验证,则会发生以下情况: 我使用成功设置来验证我的表单数据已正确序列化(正确)并且成功。但是,我的Google电子表格未更新(没有数据通过)。我在此处使用了示例代码,将doGet更改为doPost(http://mashe.hawksey.info/2011/10/google- spreadsheets-as-a-da