更新時にフォームの送信が繰り返されないようにするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-12 13:57:02
オリジナル
291 人が閲覧しました

How to Prevent Form Submissions from Being Repeated on Refresh?

更新時の重複したフォーム送信の防止

Web アプリケーション開発では、フォーム送信後にページを更新するとエラーが発生する状況に遭遇することは珍しくありません。意図しない複数の送信。この現象は、サーバー側のコードがフォーム送信処理を適切に処理しない場合に発生する可能性があります。

フォームが送信時にデータベースにデータを挿入することを目的とした次の例を考えてみましょう:

<?php
if (isset($_POST['name'])) {
    // Database operation to insert $_POST['name']
    echo "Operation Done";
    die();
}
?>

<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'])) {
    // Database operation to insert $_POST['name']
    header('Location: /path/to/record');
    exit;
}
?>
ログイン後にコピー

ヘッダー リダイレクトを追加することにより、コードはデータベース操作の完了後に新しいパスへのリダイレクトが確実に行われるようにします。ユーザーがページを更新すると、フォーム送信ページではなく新しいパスにリダイレクトされます。

リダイレクトの利点:

  • 重複した送信を防止します: ユーザーが送信後にページを更新すると、フォームを再送信しなくなります。
  • 明確なユーザー エクスペリエンス: フォームが送信された後、ユーザーには別のページが表示されます。
  • 使いやすさの向上: フォームの送信後にユーザーが誤ってページを更新した場合でも、フォームを再送信する必要はありません。手動でフォームを作成することで、ユーザーのイライラを軽減します。

以上が更新時にフォームの送信が繰り返されないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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