2010-06-15 74 views
1

我有一個PHP頁面,其中包含我的用戶可以查看的內容。當此頁面收到來自某個外部URL的POST請求時,我想將用戶重定向到另一個頁面。使用PHP監控回發?

我」遇到的問題是:

如何監控的請求的頁面以高效的方式被髮送?

由於header()不起作用,我該如何實際重定向它們。

謝謝。

回答

1

您可以使用AJAX腳本間歇性「ping」服務器以查看是否有任何更改。如果有,用JavaScript重定向用戶。

這幾乎是唯一的方法。

+0

我能ping什麼?我無法預測外部職位何時到來。 – Rebecca 2010-06-15 06:06:37

+0

PHP文件本身。您必須將外部ping存儲在臨時文件或數據庫中,直到客戶端可以檢索到它。 – 2010-06-15 06:07:37

1

我們可以把這個片段檢查後要求

if($_POST['flag']==1) { 
      header("location:newpage.php"); 
      exit(); 
} 

但如果你想定期檢查的要求,而無需用戶交互比你將不得不使用AJAX

+0

不要忘記在呼叫標題('位置:...')後致電退出。 – 2010-06-15 06:36:03

2

對於第二個問題,頭()將在你輸出任何信息到頁面之前使用它。但是,如果您在其之前回顯,打印或使用HTML,則會出現錯誤。

編輯:迴應蟾蜍的評論,那麼你必須按照亞倫哈倫的建議。讓頁面將$ _POST數據保存到數據庫或文件中(請確保清理它!),就像使用任何$ _POST數據一樣。然後,您需要使用AJAX從第二個PHP頁面獲取響應,該頁面只需檢查存儲的更新數據的存在即可。如果響應回來,那麼您使用JavaScript重定向進行重定向。

不使用AJAX的唯一方法是使用HTML元刷新元素以定時的間隔刷新頁面,以檢查是否收到$ _POST數據。 HTML將執行刷新,PHP將執行檢查,並且您可以使用任一重定向。

+0

問題不在於被請求的頁面被重定向...這是關於一個頁面,由於其他人點擊同一頁面而已經被重定向 – Toad 2010-06-15 07:06:52