更新時の重複したフォーム送信の防止
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 サイトの他の関連記事を参照してください。