因此,表單在我的網站上提交,表單操作與自身相同。在發佈虛擬變量之後刷新頁面
我希望用戶能夠刷新頁面而無需再次發送相同的變量。
我以爲未設置($ _ POST);會因爲某種原因達到這個目的,那麼有沒有另外一種方法來實現這個目標呢?
因此,表單在我的網站上提交,表單操作與自身相同。在發佈虛擬變量之後刷新頁面
我希望用戶能夠刷新頁面而無需再次發送相同的變量。
我以爲未設置($ _ POST);會因爲某種原因達到這個目的,那麼有沒有另外一種方法來實現這個目標呢?
不,未設置($ _ POST)不會'幫助你。當這個數組從瀏覽器請求中填充時。
通常的做法(和協議要求)是使用HTTP重定向到一些(通常是相同的)位置。 在同一個文件中的POST表單處理程序的一個粗略的輪廓是這樣的:
if ($_SERVER['REQUEST_METHOD']=='POST') {
//write data
Header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
}
當POST
請求響應時,您可能需要通過向GET
請求發出server-side redirect來解決此問題。這將防止用戶刷新頁面並意外地重新發送POST
請求。
感謝您的意見丹尼爾,那麼你的意思是像有form.php的和form_posted.php? – 2010-04-08 20:17:18
使用標題功能來執行此重定向。 – webbiedave 2010-04-08 20:18:44
@Pete:是的。這是實現典型'thank_you'頁面的流行方法。將用戶重定向到由'GET'請求生成的'thank_you'頁面,而不是從'POST'請求返回的頁面,這被認爲是很好的做法。 – 2010-04-08 20:20:21
o好吧我看到我可以使用這個,謝謝上校Shrapnel! – 2010-04-08 20:19:10
我明顯不能接受7分鐘,但我會再次感謝時 – 2010-04-08 20:19:44