2010-10-08 61 views

回答

0
<?php 

//do stuff with the form input 
//do not display anything 
header('Location: ready.php'); 

?> 

eaysiest和最快的方法是,將用戶重定向到另一個頁面,所以如果他重定向後relodes沒有輸入將被髮送第二次。

您可以使用$ _SESSION存儲用戶狀態,即他是否已經發送了表單。

2

在客戶端,您可以簡單地禁用單擊後的表單按鈕。但是,這提供了一個非常基本的安全級別。

您的下一步將是通過PHP阻止它。在這種情況下,最好在表單中包含一個隱藏字段,其中包含一個唯一和可識別的令牌。爲了執行您的支票,您必須保留過去使用的令牌列表,並檢查之前是否已提交。

+0

我一直想知道重新啓用按鈕。如果用戶按下「停止」,我們是否應該使用'setTimeout()'(或類似的)重新啓用它。當用戶放棄表單提交時,是否有一個'onabort'被觸發?無論如何,+1 :) – alex 2010-10-08 00:33:10

+0

那麼它的全部目的是挫敗多個提交。如果你提供了一種取消提交的方式,而不是從UI的角度重新啓用'submit'似乎是必須的。而不是'setTimeout()',你可以簡單地在單擊中止時觸發一個事件。 – 2010-10-08 00:44:00

+0

當用戶中止提交時觸發了什麼事件? – alex 2010-10-08 01:09:42

相關問題