【问题标题】:Empty $_POST array in PHP 5.2.6 / IIS CGIPHP 5.2.6 / IIS CGI 中的空 $_POST 数组
【发布时间】:2008-11-24 00:46:35
【问题描述】:

我在 Windows XP 上使用带 IIS 的 PHP 5.2.6 遇到了一个非常奇怪的问题(已尝试过 CGI 和 ISAPI)。我正在使用默认的 php.ini 设置运行全新安装。

首先,假设以下(丑陋但有效)的 HTML 代码:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="test1" value="foo" />
<input type="hidden" name="test2" value="bar" />
<input type="submit">
</form>
<br /><br />
<pre>
<?php print_r($_POST); ?>
</pre>

提交表单时,我希望它会带出一个包含两个隐藏变量的数组。相反,我看到的只是一个空数组。如果我将表单方法更改为“get”并将 print_r($_POST) 更改为 print_r($_GET),我看到数组项没有问题。

我尝试了诸如&lt;?php print file_get_contents('php://input'); ?&gt; 和&lt;?php echo print_r($HTTP_POST_VARS); ?&gt; 之类的变体,但无济于事。有什么想法可能出在哪里吗?

【问题讨论】:

    标签: php iis


    【解决方案1】:

    好吧,如果有什么安慰的话,您的代码可以在 PHP5 和 Apache 中按预期工作。

    快速谷歌发现其他几个人有同样的问题,但没有明确的解决方案 - 最接近的是this...

    检查您的 IIS 配置并查看 PHP 允许使用哪些动词。 我的猜测是 POST 不包括在内。你应该有 GET 和 POST 至少启用,或者只是让您的生活轻松并允许所有动词。

    如果您找到解决方案,请确保更新您的问题;我相信其他人会受益。

    【讨论】:

    • 感谢 Flubba,但我在 IIS 中启用了所有动词。仍然无法在 PHP 中接收 POST 变量。
    【解决方案2】:

    嗯,我也遇到了同样的问题。

    PHP.ini 文件很挑剔...确保没有“GB”,而应该是“G”。我的“post_max_size”是 1GB 而不是 1G,PHP 运行良好,除了 POST 请求。

    【讨论】:

      猜你喜欢
      • 2016-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      • 1970-01-01
      相关资源
      最近更新 更多