5

ユーザーがボーナスを申請できるPHPアプリケーションがあります。ただし、ボーナス引き換えコードが実行される前に確認ページがあります。問題は、IEf5で[続行] ボタンをクリックした直後にヒットすると、ボーナス引き換えコードが [続行] ボタンによって既にトリガーされて実際に通過している間に、確認ページが更新されることです。しかし、ユーザーにはまだ確認ページが表示されるため、続行ボタンをもう一度押すと、既に登録されているというエラーが表示されます。

f5を使用してボタンを無効にする方法はありますjavascriptか? これが最善の方法ですか?これを行うためにオンラインで見つけた多くのスクリプトを試しましたが、どれもそれを達成しません。これについて私ができるより良い方法はありますか?おそらくアプリケーション側からですか?

4

2 に答える 2

1

編集: ボーナス請求の結果がデータベース化されている場合、既存の請求を確認画面にロードして、既存の請求が存在するかどうかをテストできます。


編集: $_POST を serailize/json_encode し、これからハッシュを生成し、それをデータベースまたはユーザー セッションに保存し、それに対してテストすることもできます。


フォームの使い捨てトークン (ハッシュ) を非表示フィールドとして生成し、データベースに格納します。投稿データが再送信された場合、トークンは既に消費されており、投稿リクエストを無効にすることができます。

于 2012-10-18T03:28:04.520 に答える
0

問題を解決するには、いくつかの方法があります。

ここでチェックアウト: http://bjw.co.nz/developer/general/75-how-to-prevent-form-resubmission

私は 2 番目の方法 (セッションの使用) を使用しており、実際にうまく機能しています。

于 2012-10-18T06:30:34.197 に答える