【问题标题】:HTTP POST to IIS & PHP - key / value pair limit?到 IIS 和 PHP 的 HTTP POST - 键/值对限制?
【发布时间】:2012-06-09 10:08:21
【问题描述】:

我正在尝试调试将数据发布到 IIS (7.5) 的 Web 应用程序中的问题,该应用程序将数据传递到 PHP (5.3.5) 应用程序(通过 FastCGI)。

页面有一个动态表单,允许用户添加新字段,因此页面发布的键值对的数量会有所不同(表中的每一行有 6 个新的键值对)。一些用户完全疯了,添加了大量数据,这意味着在某些情况下,POST 正文中有超过 1000 个键值对。

看起来 IIS、FastCGI 或 PHP 都在限制 POST 正文中的键值对的数量。 Fiddler 告诉我浏览器正确发送了所有 1,000 多对,但是如果我使用 PHP 立即回显 $_POST 中的每个键,则列表缩小了。所有发布的值都包含数据,但即使它们没有,我也确定不应该删除键。

谷歌搜索这个问题没有帮助,所以希望有人在这里有经验。澄清一下:

  1. 重新设计应用程序可能会在桌面上,但只是作为最后的手段
  2. 被 POST 的数据量仍然很小 - 整个请求大约 50kb
  3. 神奇的数字似乎在 1,000 左右(可能是 1,005,但测试有点像猪,所以我不能完全确定)

非常感谢您对此的任何想法!

【问题讨论】:

    标签: php http iis http-post key-pair


    【解决方案1】:

    最终答案来自this thread

    PHP 的 max_input_vars 是问题所在

    【讨论】:

      【解决方案2】:

      IIS 有请求限制,从另一个帖子中找到:

      Is there a limit to POST over HTTPS for IIS 7?

      好像你在做动态表格。我建议您查看 Google Docs 中的“表单”,并考虑通过 AJAX 将整个表单的内容部分更新到服务器端。这会消耗更多带宽和连接稳定性,但会解决您的 1000 或 1005 限制。

      另一种方法,控制用户期望并设置上限。

      【讨论】:

      • 谢谢,我会查看 IIS 请求限制,看看是否有任何相关信息。我认为如果我无法更改限制,我可能会使用多个帖子来解决这个问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-06
      • 1970-01-01
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      • 1970-01-01
      • 2021-01-20
      相关资源
      最近更新 更多