ホームページ  >  記事  >  バックエンド開発  >  ページ更新時に意図しないデータ挿入を防ぐにはどうすればよいですか?

ページ更新時に意図しないデータ挿入を防ぐにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-25 00:40:17568ブラウズ

How to Prevent Unintentional Data Insertion on Page Refresh?

ページ更新時の意図しないデータ挿入の回避

Web アプリケーション開発では、ユーザーがページ更新後に意図しないデータ挿入を防ぐことが重要です。フォームを送信する。この問題に対する一般的なアプローチの 1 つは、フォーム送信後にユーザーを別のページにリダイレクトすることです。

フォームを使用してデータベースにデータを挿入する次のコード スニペットを考えてみましょう:

<?php
    if (isset($_POST['name'])) {
        // Operation on database, such as inserting $_POST['name'] into a table
        echo "Operation Done";
        die(); // Die() is used to prevent further processing, which would otherwise cause the form to be resubmitted on page refresh.
    }
?>

<form action='page.php' method='post' name="myForm">
    <input type="text" maxlength="50" name="name" class="input400" />
    <input type="submit" name="Submit" />
</form>

フォームが送信されると、データがデータベースに挿入され、「操作が完了しました」というメッセージが表示されます。ただし、ユーザーがページを更新すると、フォームが再送信され、データが再度挿入されます。

この問題を回避するには、フォームの送信後にユーザーを別のページにリダイレクトすることをお勧めします。これにより、ページ更新時にフォームが再送信されなくなります。

<?php
    if (isset($_POST['name'])) {
        // Operation on database, such as inserting $_POST['name'] into a table
        // Set a success flash message (assuming you are using a framework).
        header('Location: /path/to/record'); // Redirects the user to a different page upon successful form submission.
        exit; // Die() is not necessary here since the header redirect will send the user away from the page.
    }
?>

<form action='page.php' method='post' name="myForm">
    <input type="text" maxlength="50" name="name" class="input400" />
    <input type="submit" name="Submit" />
</form>

フォーム送信後にユーザーを別のページにリダイレクトすることで、ページ更新時に意図しないデータが挿入されるリスクが排除されます。

以上がページ更新時に意図しないデータ挿入を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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