2008-11-24 89 views
0

我正在與PHP一個很奇怪的問題5.2.6瓦特/ IIS的Windows XP(曾經嘗試都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),我可以看到沒有任何問題的數組項。

我試圖變體如<?php print file_get_contents('php://input'); ?><?php echo print_r($HTTP_POST_VARS); ?>無濟於事。任何問題可能存在的想法?

回答

2

好吧,如果這是你的代碼按預期工作在PHP5與Apache安慰。

快速谷歌發現一對夫婦的其他人同樣的問題,但沒有明確的解決辦法 - 最接近的是this ......

檢查您的IIS配置,並看到允許使用PHP什麼動詞。 我的猜測是POST不包括在內。您應該至少啓用GET和POST ,或者讓您的生活變得輕鬆並允許所有動詞。

確保你,如果你找到一個解決方案更新你的問題;我相信其他人會受益。

+0

謝謝Flubba,但我在IIS中啓用了所有動詞。仍然無法接收PHP中的POST變量。 – giltotherescue 2008-11-24 18:49:53

0

好吧,我只是有同樣的問題。

php.ini文件是挑剔...確保你沒有「國標」,它應該是「G」。我有1GB的「post_max_size」,而不是1G,PHP運行良好,除了POST請求。