「重複提出」の問題に遭遇したことがありますか?この問題を解決するのは難しくありません。同じフォームの重複送信を避ける簡単な方法を次に示します。
まず、フォームの送信シーケンス番号を保存するセッション変数を定義できます。ここでは「$userLastAction」として定義します。次に、フォームに隠し変数を追加し、値を $userLastAction 1 に設定します:
> 最後に、送信を処理する前にフォームを判断します。送信済みかどうか:
if($lastAction>$userLastAction and inputIsValid(...)){
$userLastAction; // シーケンス番号を 1 ずつインクリメントします
// フォーム データを処理します
}
;
複数のフォーム送信を避ける
投稿者: Douglas E. Cook
日付: 07/26/00 19:46
あなたのデータベースは「重複投稿」症候群に悩まされていますか? 治療法はそれほど難しくありません。ユーザーが同じフォームを複数回送信できないようにする方法。
>
最後に、送信を実行する前にフォームが以前に送信されていないことを確認してください:
if($lastAction>$userLastAction and inputIsValid(...)){
$userLastAction; // シリアル番号をインクリメントします
// ここでフォームに作用します
}
これは、フォームの繰り返しの送信を避けるためのちょっとしたトリックです。これにより、一部のフラッディングを防ぐことができます。また、ネットワーク状況やその他の理由により、ユーザーが送信が成功したかどうかがわからず、同じフォームを再度送信することがあります。
この手法の主な原則は、ユーザーが復帰後に再送信できないことです。つまり、復帰後の変更と再送信は許可されておらず、Ctrl-C/Ctrl-V の灌漑方法は避けられません。役に立つかどうかはウェブマスターの好み次第です
を定義できます。