ホームページ >バックエンド開発 >PHPチュートリアル >PHP ページでフォームの再送信を防ぐにはどうすればよいですか?

PHP ページでフォームの再送信を防ぐにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-03 11:11:29842ブラウズ

How to Prevent Form Resubmission in PHP Pages?

PHP ページでのフォームの再送信の回避

挿入関数を含む PHP ページを更新すると、フォームの再送信の問題が発生する可能性があります。重複したデータが挿入される可能性があります。これを防ぐには、Post-Redirect-Get (PRG) パターンの採用を検討してください。

PRG パターン

PRG パターンには次のものが含まれます。

  1. POST リクエストの受け入れ: 送信されたフォーム データを受信します。
  2. データの処理: 必要なアクションを検証、挿入、または実行します。
  3. リダイレクト応答の発行: ユーザーを新しい URL にリダイレクトします。
  4. GET リクエストの受け入れ: ユーザーは更新されたリンクをクリックし、新しいリクエストを作成します。
  5. 200 レスポンスの発行: 必要なデータを含むページを表示します。

たとえば、次のように仮定します。ユーザーがメモを追加できるページを作成しています。同じページで挿入関数を使用する代わりに、次のように PRG パターンを実装できます:

  • ページ 1 (add_note.php): フォームを表示します。
  • ページ 2 (process_note.php): POST リクエストを受け入れ、メモの送信を処理します。
  • ページ 3 (view_notes.php): GET を受け入れます。

フォーム データ表示の処理

処理後に送信されたフォームのデータを表示する必要がある場合は、一意のリダイレクト URL のクエリ文字列内の識別子。たとえば、process_note.php からのリダイレクト応答は次のようになります。

<code class="php">header("Location: view_notes.php?note_id=$new_note_id");</code>

view_notes.php では、クエリ文字列から note_id を使用して、新しく挿入されたメモを取得して表示できます。

以上がPHP ページでフォームの再送信を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。