ページ更新時のフォームの再送信の防止
フォームでは、ページ更新時にデータが重複して送信されるという問題が発生します。これは、データベースを破損する可能性がある一般的なシナリオです。エントリ。これに対処するには、再送信を防止しながら現在のページを保持するソリューションを探します。
1 つの方法では、各ユーザーの一意のセッション ID を利用します。この識別子は保存された値と比較できるため、重複した送信を防ぐことができます。ただし、このアプローチの具体的な実装はすぐには利用できません。
あるいは、JavaScript の window.history.replaceState を利用して、ページが更新されるときや戻るボタンが使用されるときの再送信を防ぐこともできます。これを示す JavaScript スニペットは次のとおりです。
if ( window.history.replaceState ) { window.history.replaceState( null, null, window.location.href ); }
このコードは、現在の履歴状態を、現在のページと同じ URL を持つ新しい履歴状態に置き換えます。したがって、ユーザーが更新するか戻るボタンをクリックしても、フォームは再送信されません。
この JavaScript アプローチは革新的ですが、一般的には Post/Redirect/Get (PRG) アプローチを採用することをお勧めします。ただし、どちらの方法でも、ページが更新されたときのフォームの再送信の問題に効果的に対処できます。
以上がページ更新時にフォームの再送信を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。