【问题标题】:php Post limited to 1000 variablesphp Post 限制为 1000 个变量
【发布时间】:2012-02-29 19:14:10
【问题描述】:

我有一个大表单,我可以从 firebug 看到所有元素的值都被正确发送,但是当我 print_r($_POST) 时只显示 1000 个变量。我的 max_post_size 设置为 25M,所以我知道这不是问题,我在 php.ini 中搜索了“post”和“max”等关键字,但没有找到任何东西。

1000 只是我通过的元素的大约 1/4,所以显然这对我来说是一个相当大的问题,我非常感谢我能得到的任何帮助。

【问题讨论】:

  • 只有 1000 个变量?
  • 这可能是 HTTP 协议的限制(尽管我从未听说过)。有什么方法可以最小化 POST 中发送的变量数量?我从未听说过有超过 9000 个(不得不说)POST 变量的网站。
  • @lolwut - 实际上他有 4000 个!!
  • 我很想看看这个表格,你有链接吗?
  • 大声笑,你怎么能在没有看到页面的情况下这么说?抱歉,如果我在描述应用程序方面做得不够好,但您只需要相信我的话。

标签: php post


【解决方案1】:

我也有类似的情况;我只能发布数组的前 1000 个元素。

我的解决方案是将 implode() 数组转换为一个长字符串,然后将 explode() 放在服务器端。

json_encode() 可能也可以。

【讨论】:

    【解决方案2】:

    好的。我想出了一个使用 jquery 的解决方案

    我是这样做的

    $("#single-form").submit(function(event) {
        event.preventDefault();
        var table_data = $(this).serialize();
        console.log(table_data);
      // ajax call to handle the data
    }
    

    serialize 函数将给出所有表单数据的 URL 编码字符串,在 PHP 文件中只需使用函数 parse_str 将字符串解析为变量。

    【讨论】:

      【解决方案3】:

      我明白你在这里做了什么。

      max_input_vars, 1000
      

      为了防止哈希碰撞攻击而引入: http://www.phpclasses.org/blog/post/171-PHP-Vulnerability-May-Halt-Millions-of-Servers.html 但在 5.3.9 中失败: http://www.phpclasses.org/blog/post/175-Another-Serious-Security-Bug-on-PHP-539.html 所以如果有问题,你应该更新到 5.3.10+。

      【讨论】:

      • 也可以是suhosin.post.max_vars = 1000(当然,如果他使用的是Suhosin)。
      • @Crontab,可能是,你是对的,但所有托管公司都应该更新到 5.3.10+ :)
      • 我看到了关于 max_input_vars 和 suhosin.post.max_vars 设置,但我的 php.ini 中都没有。我已经安装了 5.3.6。
      • @jreed121 你有没有试过把它关掉再打开 :) 在这里检查php.net/ChangeLog-5.php 并且没有关于限制的消息,对不起......如果可以的话,更新 PHP。对几个版本进行了快速测试for($i = 0; $i < 4000; $i++) $_POST[$i] = rand();,没有问题。
      • 请检查您的phpinfo() 的PHP 版本,是否启用了suhosin 以及suhosin.post.max_varsmax_input_vars 的值(如果适用)。
      【解决方案4】:

      我在使用 PHP v5.4.20 时遇到了完全相同的问题,即 1000 个变量限制。即使 php.ini 文件不包含任何这样的“max_input_vars”行,我只是在顶部 [PHP] 部分下找到了一个方便的位置,添加了“max_input_vars = 10000”行,重新启动了 Apache,一切都解决了.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-14
        • 2022-01-18
        • 2011-06-04
        • 1970-01-01
        • 2016-05-12
        • 1970-01-01
        • 2010-12-13
        相关资源
        最近更新 更多