2012-01-09 90 views
1

在我們的網站上,有時$ _POST會空轉到操作頁面。

出現這種情況大概約1-2%的提交每天的形式。這是目前每天大約50-100個腐敗表單提交。

我們確信數據是有初始頁面上。我們嘗試同時使用$ _POST和$ _GET以相同的值發送相同的數據。 $ _GET一直到達操作頁面,但$ _POST可以空着。

很多時候,這個錯誤發生在WebKit的瀏覽器別謝季河。另外手機瀏覽器似乎更傾向於此。 IE瀏覽器比Webkit瀏覽器的體驗要少。 而且很少發生在Firefox上。

當前配置是這樣的:
PHP版本5.2.15
CentOS 5的
的Apache 2.2.3

有一點我們要討論的是升級我們的PHP 5.3.x. 這聽起來像是一個合理的嘗試?

對我們如何才能嘗試調試這有什麼建議?

UPDATE: 提交形式如下:

<form action="submit.php?receiver_user_id=<?php echo $_SESSION['receiver_user_id'];?>&sender_user_id=<?php echo $_SESSION['user_id']; ?>" method="post"> 
    <textarea name="message_text" ></textarea> 
    <input type="hidden" name="receiver_user_id" value="<?php echo $_SESSION['receiver_user_id'];?> 
    <input type="hidden" name="sender_user_id" value="<?php echo $_SESSION['user_id']; ?> 
    <input type="image" name="submit" src="submit.png" value="submit"/> 
</form> 
+1

「在我們的網站,我們有我們無法爲一年多了,現在修復的錯誤。」 - 也許有時間聘請專家? – 2012-01-09 13:22:22

+4

可能是由於發佈了比post_max_size更多的數據?有關更多信息,請參閱http://stackoverflow.com/questions/8573664/php-empty-post。 – cmbuckley 2012-01-09 13:22:41

+0

@MitchWheat令人驚訝的是,甚至沒有專家知道一切 – JamesHalsall 2012-01-09 13:23:48

回答

0

會不會是某種輸入的形式,使發送失敗,或者,假設你通過空判斷1-2%數據庫條目,使存儲失敗,分別?

這聽起來很愚蠢...我的意思是,如果你有一個循環提交1000次相同的值的形式,1-2%仍然是空的,或者它可能取決於什麼是發送,表單變空了?

+0

在將它們提交到數據庫之前,我們會捕獲空的$ _POST。但是我們會通過電子郵件通知有關錯誤和技術細節的信息。 – Haluk 2012-01-09 13:41:13

+0

這些失敗的發送的「技術細節」中是否有值得一提的內容?你用什麼代碼來確定錯誤? – kontur 2012-01-09 13:43:34

+0

我們從會話中獲取用戶信息。查看會話是否處於活動狀態。我們獲得SERVER_CONTENT_LENGTH。如果帖子是空的,這將變空。我們還檢查SERVER_REQUEST_URI以查看獲取變量是否在url中。 – Haluk 2012-01-09 14:09:19