ページ更新時にフォームの再送信を防ぐ方法 (F5/CTRL+R)
P粉151466081
2023-08-29 11:37:35
<p>SQL テーブルにテキストを送信する単純なフォームがあります。問題は、ユーザーがテキストを送信した後、フォームに再度入力しなくても、ページを更新してデータを再送信できることです。テキストを送信した後にユーザーを別のページにリダイレクトできますが、ユーザーは同じページに留まりたいと考えています。 </p>
<p>各ユーザーに一意のセッション ID を与え、それを別の値と比較すると、抱えていた問題が解決するという記事を読んだ記憶がありますが、それがどこにあったか忘れてしまいました。 </p>
また、JavaScript メソッド
リーリーwindow.history.replaceState
を使用すると、更新ボタンや戻るボタンでの再送信を防ぐことができることも指摘しておきます。概念実証: https://dtbaker.net/files/Prevent-post-resubmit.php(リンクは無効になりました)私は依然として Post/Redirect/Get メソッドをお勧めしますが、これは新しい JS ソリューションです。
パブリッシュ/リダイレクト/取得パターンを使用します。 http://en.wikipedia.org/wiki/Post/Redirect/Get
私の Web サイトでは、メッセージを Cookie またはセッションに保存し、投稿後にリダイレクトし、Cookie/セッションを読み取り、そのセッションまたは Cookie 変数の値をクリアします。