2009-09-13 33 views
2

使用帖子方法f5提交表單後,將重新提交。 如果不重定向頁面,最好避免這種情況。我不想這樣打擾用戶。 Stackoverflow對f5是免疫的,但在提出問題後我沒有看到任何重定向。停止使用F5發佈帖子後重新提交頁面

回答

6

StackOverflow很漂亮AJAX,這就是爲什麼你看到你看到的行爲。

如果您不想獲取所有AJAXy,則需要重定向。這種重定向應該是對用戶透明:現在

if (! empty($_POST)){ 
    // Do something with the contents of $_POST 
    header('Location: success.php'); 
} 

,如果驗證失敗,則可能重新加載形式與一些錯誤信息,以及錘擊F5將重新發布該數據。但是,如果操作成功,用戶將被重定向到您的成功頁面,並且他們可以整天捶打f5而無需重新傳輸數據,並且可能會創建重複的操作。

7

獲取郵政

  • 形式做一個POST請求
  • 代碼處理形式
  • 代碼重定向使用Location頭

結果:刷新結果頁面只會再次顯示它,因爲它是使用GET完成的。

3

實現這種效果的標準方法是使用HTTP重定向,這對用戶來說並不明顯(所以我假設您指的是元刷新延遲重定向)。

查看Post Redirect Get pattern