PHPページを更新するときにフォームを再処理しないようにする方法はありますか?私はそれらに挿入機能を持つPHPファイルへのリンクをリフレッシュするときにフォームを再送信しないようにしたいと思います。たとえば、新しいノートのために、各ページの上部にあるユーザーが書いた一連のメモを処理しています。明白なヘッダー関数を持つ別のPHPファイルを作成することに加えて、それを行う別の方法がありますか?PHPページでフォームを再送信しないようにする
1
A
答えて
14
Post-Redirect-Get Patternを使用してください。
- 受け入れるデータは
- 問題POSTリクエストにGET要求をリダイレクト応答
- を
- プロセスを受け入れ
- 号200応答
あなたがからのデータを表示する必要がある場合送信されたものは、リダイレクト先のURLのクエリ文字列などに行IDなどを含めます。
1
最も適切な方法は、フォームを処理した後にheader("location: form.php");
呼び出しを行うことです。それはフォームページにリダイレクトされ、リフレッシュすると、ブラウザはフォームデータを再送信しません。
また、受信したデータを既に処理しているかどうかを確認することもできますが、それでもデータを再送信するというブラウザの警告メッセージが表示されます。
誰かが戻るボタンを使用し、誤って[送信]を再度クリックした場合にのみ、両方を行うことがあります。
1
最初にフォームを処理するときにフラグを設定するだけで、後で確認して再処理を中止できます。セッション変数またはクッキーは正常に動作します。
1
ノンスを1度だけ使用できるページにノンスを入れると、同じノンスが入っていればページの挿入はできません。
1
フォームの処理後にユーザーを新しいページにリダイレクトします。
フォームはdo-something.php
へのPOSTリクエストです。私は入力データをチェックし、データが有効であればデータを処理し、do-something.php?somethingdone
にリダイレクトします。したがって、ユーザーはPOST要求を再送しなくてもF5を押すことができます。
関連する問題
- 1. リフレッシュ時にページを再送信しないようにする
- 2. jspページでフォームを重複して送信しないようにします。
- 3. Zendフレームワークでフォームを再送信しないようにしますか?
- 4. ReactJSフォームをPHPページに送信
- 5. ページ変更なしでPHPスクリプトに送信するフォームのPHP待機カーソル
- 6. 更新ページのデータを送信しないようにするにはPHP ['PHP_SELF']
- 7. Javascriptフォームを送信しないようにするには
- 8. VueJS/Semantic UIにフォームを送信しないようにする
- 9. ページを再ロードせずにフォームを送信する方法
- 10. 送信ボタンで送信しないフォーム
- 11. $ _Postはフォーム送信後に変数を返さないようですphp
- 12. AJAX - フォーム送信、同じページ、PHP
- 13. PHPでフォームを送信するには?
- 14. フォームを送信した後、インデックスページに再度購読フォームが表示されないようにする方法
- 15. フォームなしで別のページにデータを送信する
- 16. フォーム送信時にモーダルを閉じないようにする
- 17. jQueryがフォームの送信を妨げないようにする
- 18. PHPフォーム送信ボタン/データベースに送信
- 19. フォームを送信し、新しいページからajaxにフォームデータを送信します
- 20. Expressで1回送信した後にデータを再送信しないようにする方法
- 21. 再生フレームワーク:送信ボタンが機能しないようです。
- 22. HTML PHP - フォームが送信されない
- 23. フォームが送信されないPHP
- 24. フォーム送信後にPHPスクリプトが電子メールを送信しない
- 25. フォームを送信しない
- 26. ページを再ロードせずにフォームを送信
- 27. CF7は、JavaScriptが無効に - フォーム送信後、さわやかなページは再送信フォーム
- 28. PHPフォームでメールを送信する
- 29. フォームが送信されないようにする - jquery
- 30. 入力時にPHPフォームがMySQLにデータを送信しない
ああ、毎日新しい何かを学んでください:) –
リクエストを受け取り、200の応答を出すことはどういう意味ですか? –
ブラウザは「GET/url/you/redirected/to HTTP/1.1」というリクエストを発行し、サーバーは「HTTP/1.1 200 OK」、その他のヘッダーといくつかのコンテンツで応答します。 – Quentin