2012-10-18 77 views
4

我有一個PHP應用程序,用戶可以申請獎金。但是,在獎勵兌換代碼運行之前有一個確認頁面。 問題是,在IE,如果您在點擊繼續按鈕後立即點擊f5,當獎勵兌換碼已經被繼續按鈕觸發並且實際通過時,刷新確認頁面。但是由於用戶仍然看到確認頁面,他們會再次點擊繼續按鈕,現在他們得到一個錯誤,因爲他們已經註冊。點擊提交按鈕後點擊f5

有沒有一種方法可以禁用f5按鈕使用javascript?這是最好的方式去做這件事嗎?我嘗試了很多我在網上找到的腳本來做到這一點,但是他們都沒有達到目的。有沒有更好的辦法可以解決這個問題?也許從應用程序方面?

+4

服務器端檢查(在數據庫中)會更好。 –

+1

我們可以看到相關的代碼嗎? – SomeKittens

+0

那麼CTRL-R襯衫 - 右鍵單擊​​,瀏覽器中的按鈕?你無法阻止它。聽起來你需要更好地設置贖回。找出導致它的原因。 – epascarello

回答

1

編輯:如果聲稱獎金的結果是基於數據庫的,則可以在確認屏幕上加載現有的聲明並測試該聲明已存在。


編輯:另一絕招你可以做的是serailize/json_encode的$ _ POST,並從這個產生散列,其存儲在數據庫或用戶會話,並對它進行測試。


我會產生和數據庫中的單次使用令牌(散)的形式作爲隱藏字段,如果後期數據重新sumbited,令牌早就被消耗,並且可以無效POST請求。