2012-01-11 78 views
0

我在運行php 5.3.8和Zend Engine 2.3.0的eAccelerator,Xdebug和Suhosin的本地服務器上安裝了相當新鮮的apache/php安裝程序。一切都很好,除了一個主要的問題。每次以表格形式提交時,都沒有數據通過。 (print_r($ _ POST)返回一個空數組)

我也在$ _SERVER上做了一個print_r,注意content_type被正確設置爲application/x-www-form-urlencoded並且content_length被正確設置,甚至根據提交前在表格中輸入的信息長度而有所不同。

話雖這麼說,所有下面的代碼中沒有返回值:

var_dump($_POST); 

$data = file_get_contents('php://input'); 
var_dump($data); 

讀過的一切,我可以通過其他問題發現,我已經檢查了各種php.ini設置和通過的phpinfo看了()名單和所有職位相關的變量似乎設置正確,並超過足夠大,至少處理與兩個文本輸入框的形式...

感謝您的任何幫助!

回答

0

沒有進一步的信息,我只能給一些很通用的指令:

  1. 驗證表單元素具有actionmethod屬性的值,或以其他方式確保它做你的期望。 (方法和動作屬性都很重要。)
  2. 確保您已連接到Web服務器,並且沒有應用程序防火牆正在過濾POST請求,包括硬件和軟件。
  3. 確保您的請求通過在您的本地網絡或計算機上使用wireshark進行攔截來完成。使用wireshark和其他工具來追蹤請求的去向,並確保它到達。
  4. 登錄到您的服務器並查看它的日誌。確保您收到請求。如果沒有,請檢查本地應用程序防火牆或其他工具(如mod_security)攔截請求。如果是這樣,請從服務器的角度審查預處理和後處理的請求。確保目標與步驟1中的值action重合。
  5. 隨機猜測或詢問您的(或)系統管理員。
+0

謝謝。我已經差不多已經搬到了第5步,但我擔心我錯過了相當明顯的事情。我一直在測試一個正確的重定向到不同頁面的表單,而沒有POST信息。如果我改變方法從發佈到獲取,信息可以從$ _GET或$ _REQUEST獲取。我剛剛下載wireshark,並可以看到一個完美的POST請求到服務器。我猜測,有一些額外的工具安裝,並會在今天晚些時候進行更多測試。感謝您的答覆! – 2012-01-11 14:34:46