リフレッシュ時にページが再送信されないようにする方法があるのだろうかと思います。リフレッシュ時にページを再送信しないようにする
答えて
フォーム入力を処理している別のURLにLocation
ヘッダーを送信することができます。この新しいURLは、フォームデータを送信する必要なく、ブラウザで利用できるようになります。
私はこれを使用しました。どうもありがとう。私はちょうど私が起こったかったことの処理が完了した後、同じページをリダイレクトしていました。 – Darren
私はこれを行う良い方法があるとは思わない。過去にこれを達成したやり方は、投稿と投稿の間に最低でもlast_modified
の日付と時間を持つことでした。 1時間くらい待っていないと、その投稿は拒否されます。
あなたがコントロールできないクライアント(ブラウザ)を停止することは、基本的には不可能です。非常に簡単で、あなたのケースで - - しかしそれは可能である。このに対するあなたのアプリ強化するために:あなたはフォームを表示すると、
- をランダムにトークンを作成し、セッションに保管し、隠されたとしてフォームに追加しますフィールド
- あなたが入力したフォームを受信すると、それはそれは
をセッションからトークンをクリア一致し、データを処理しない場合は、データを無視一致しない場合、セッションに対してトークンをチェックあらゆるヘッダーやその他のトリックは、ブラウザや人がマリを使わずに爽やかに動作するかもしれませんが、攻撃者に対しては絶対に役立たないでしょう。
私が知っている唯一のトリックは、フォームのサブミットを3番目のページに移動するためにjavascript(メタリフレッシュなど)を介してクリックするリンクを持つページを返すことです。
あなたがF5を押したときに爽やかになることは、フォームの送信ページではなくリンクページです。
使用ポスト/リダイレクト/取得します。その後、PHPプロセスのhttp://en.wikipedia.org/wiki/Post/Redirect/Get
コード内のフォーム、代わりにこのheader('Location: http://www.example.com/foo.php');
(明らかにURLを置き換える)に置くものを出力すると、別のページの表示を行います。そのページに何かを渡す必要がある場合は、クエリ文字列を使用してください。$_GET[]
これを解決するために私は少し別のアプローチを取っています。私が開発したMVC環境では、ページを2度リダイレクトしました。データがデータベースに送信されていることを確認した後、私はこれが私の「リダイレクト」クラスと「blogcomment」メソッドを呼び出します
header("Location: http:// .... /redirect/blogcomment
にリダイレクト。ここで、それは再び "リファラー"にリダイレクトされます。
public function blogcomment() {
$ref = $_SERVER['HTTP_REFERER'];
$page = "Location: " . $ref . "#commentform";
header($page);
}
これは、フォームフィールドの直前にアンカータグを追加することで、その場所にすぐにジャンプします。もちろん、私はリダイレクトのカスタマイズにおいても多くの自由を得ることができます。これまでのところ、それは魅力のように機能します。
2重ロード...ページを自分自身にリダイレクトすることは悪い習慣です。これを行うアプリケーションをデバッグしようとすると、それが起こっていることを認識するのがはるかに面倒になります。神の人々の愛のために、フォームを提出する必要がある場合は、別のスクリプトにまず送ってから、フォームを再送信するリフレッシュを削除したい場合は、デバッグするのがはるかに簡単です!
unset($_POST);
を最後のコマンドとして:
はやってみてください。
- 1. リフレッシュ時にページを再送信するのを停止しようとしています
- 2. PHPページでフォームを再送信しないようにする
- 3. ページをリフレッシュせずにajaxリクエストを送信しないようにする
- 4. フォーム送信時にモーダルを閉じないようにする
- 5. POSTデータを再送せずにページをリフレッシュする(ASP.NET)
- 6. リフレッシュしないで送信 - Django
- 7. 画像を送信ボタンとして送信する - リフレッシュしない
- 8. フォームをページなしで送信するjQueryを使用してリフレッシュする
- 9. jspページでフォームを重複して送信しないようにします。
- 10. Zendフレームワークでフォームを再送信しないようにしますか?
- 11. ページをリフレッシュさせないようにする
- 12. 再生フレームワーク:送信ボタンが機能しないようです。
- 13. Yiiで送信した後にリフレッシュしない
- 14. ページをリフレッシュせずに返信する
- 15. Zend framework Jqueryのページをリフレッシュせずにフォームを送信
- 16. jQueryとCodeIgniterでページをリフレッシュせずにフォームを送信
- 17. リフレッシュのないフォームの送信
- 18. 送信ボタンのクリック時にブートストラップモーダルが閉じないようにする
- 19. フォームデータを1ページに送信し、次に別のページに送信しますか?
- 20. ページのアンロード時にAJAXリクエストをキャンセルせずに送信するにはどうすればよいですか?
- 21. フォーム送信時にjqueryタブを再ロードするにはどうすればよいですか?
- 22. フォームを1回送信してください。ページがリフレッシュされたときに提出しない
- 23. ASP.net - ページ送信時間とクライアント送信時間を区別する方法
- 24. e.preventDefaultを使用してもページをリフレッシュするフォームを送信する
- 25. 現在のページをリフレッシュ/リダイレクトせずにフォームを送信する(Python(Django)+ jQuery + Ajax)
- 26. asp:DropDownListは選択時にページを送信します。
- 27. アプリの再インストール時にAndroidデバイスが再起動しないようにする
- 28. コードビハインドがリクエストを送信しないようにしました
- 29. 投稿後にDjangoのページがリフレッシュされないようにするには?
- 30. フォームを送信し、新しいページからajaxにフォームデータを送信します
私はそれができないと思う...しかし、私は確信していません –