1

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

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

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

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

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

对此的任何想法将不胜感激!

4

2 回答 2

3

最终答案来自这个线程

PHPmax_input_vars是问题所在

于 2012-06-09T02:08:21.993 回答
0

IIS 有请求限制,从另一篇文章中找到:

对于 IIS 7,通过 HTTPS 进行 POST 是否有限制?

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

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

于 2012-06-07T02:52:26.497 回答