ホームページ > バックエンド開発 > PHPチュートリアル > Post-Redirect-Get (PRG) パターンはどのように PHP でのフォームの再送信を防ぐことができますか?

Post-Redirect-Get (PRG) パターンはどのように PHP でのフォームの再送信を防ぐことができますか?

Susan Sarandon
リリース: 2024-12-01 03:37:09
オリジナル
133 人が閲覧しました

How Can the Post-Redirect-Get (PRG) Pattern Prevent Form Resubmission in PHP?

PHP の Post-Redirect-Get (PRG) パターン: フォーム再送信保護の実現

Web アプリケーションの設計時にフォームの再送信を防止するページのリロード後または戻るボタンのアクションにより、ユーザー エクスペリエンスが向上し、データの整合性が維持されます。 Post-Redirect-Get (PRG) パターンは、この問題に対処するためのアプローチとして広く認識されていますが、簡単な PHP 実装を見つけるのは難しい場合があります。

PHP で PRG パターンを示す簡略化された例を次に示します。

<?php
if ($_POST) {
    // Validate input

    if (/* Input is valid */) {
        // Execute code (such as database updates) here.
        // Redirect to this page.
        header("Location: {$_SERVER['REQUEST_URI']}", true, 303);
        exit();
    }
}
?>
<html>
<!-- Your HTML page with a form -->
</html>
ログイン後にコピー

この例では、フォームが POST 経由で送信されると、入力が検証されます。入力が有効な場合、データベースの更新などのコードが実行されます。その後、スクリプトは Location ヘッダーを使用してユーザーを同じページにリダイレクトします。 303 See Other ステータス コードは、リクエストを GET 経由で繰り返す必要があることを示し、フォームの再送信を効果的に防止します。

$_SERVER['REQUEST_URI'] を使用することで、この例では、CMS システムおよびフレームワークの PHP_SELF に関する潜在的な問題を回避します。 exit() 関数は、リダイレクト以下の HTML コードの実行を防ぐために呼び出されます。

この PRG 実装は、コードの複雑さを最小限に抑えながら、フォームの再送信に対する保護を提供します。このパターンを採用することで、Web アプリケーションの堅牢性とユーザー エクスペリエンスを向上させることができます。

以上がPost-Redirect-Get (PRG) パターンはどのように PHP でのフォームの再送信を防ぐことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート