ホームページ バックエンド開発 PHPチュートリアル Forms の繰り返し送信を防ぐ ThinkPHP メソッド_PHP チュートリアル

Forms の繰り返し送信を防ぐ ThinkPHP メソッド_PHP チュートリアル

Jul 21, 2016 pm 03:25 PM
thinkphp いいえ 状態 提出する 方法 はい ポイント ユーザー 形状 繰り返す 防ぐ

ただし、回避できない状況が 1 つあります。

ユーザーがフォームを送信した後、ブラウザの戻るボタンをクリックしてフォーム ページに戻ります。このとき、ブラウザはキャッシュからページを直接取得するため、トークンの検証は失敗するはずです。

location.replace() メソッドを使用して現在の履歴レコードを置き換えるなど、インターネット上でこの問題を回避する方法はたくさんありますが、これにはまだ欠陥があります。極端な場合には、ユーザーがページ間を複数回切り替えた場合、「戻る」ボタンを数回クリックすると、前のフォーム ページに戻る可能性があります。

解決策は、http ヘッダーで Cache-Control: no-cache、no-store を設定することです。ただし、ページヘッドに <meta http-equiv="Cache-Control" content="no-cache, no-store"> を追加するか、header("Cache-control: no-cache, no-ストア") は無効です。

Forms の繰り返し送信を防ぐ ThinkPHP メソッド_PHP チュートリアル

長い間検索した結果、問題は ThinkPHP のテンプレート レンダリング メカニズムにあることがわかりました。ThinkPHP/Lib/Think/Core/View.class.php を開いて 173 行目を見てください。

header("キャッシュ制御: プライベート"); //ページバウンスをサポート
ページバウンスをサポートするために、TP は各テンプレートが出力される前に Cache-control: private ヘッダーを送信する必要があることがわかりました。これは本当に無駄です。

この行をコメントアウトし、TPコアキャッシュを削除し、再試行すると、HTTP応答ヘッダーが正常に変更されたことがわかります

Forms の繰り返し送信を防ぐ ThinkPHP メソッド_PHP チュートリアル

http://www.bkjia.com/PHPjc/324205.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/324205.html技術記事ただし、回避できない状況があります。ユーザーがフォームを送信した後、ブラウザの戻るボタンをクリックしてフォーム ページに戻ると、ブラウザはキャッシュからページを直接取得するため...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Xiaohonshu アカウントを使用してユーザーを見つけるにはどうすればよいですか?私の携帯電話番号を見つけることはできますか? Xiaohonshu アカウントを使用してユーザーを見つけるにはどうすればよいですか?私の携帯電話番号を見つけることはできますか? Mar 22, 2024 am 08:40 AM

Xiaohonshu アカウントを使用してユーザーを見つけるにはどうすればよいですか?私の携帯電話番号を見つけることはできますか?

トマト無料小説アプリで小説を書く方法. トマトノベルで小説を書く方法に関するチュートリアルを共有します。 トマト無料小説アプリで小説を書く方法. トマトノベルで小説を書く方法に関するチュートリアルを共有します。 Mar 28, 2024 pm 12:50 PM

トマト無料小説アプリで小説を書く方法. トマトノベルで小説を書く方法に関するチュートリアルを共有します。

WeChat で削除された連絡先を回復する方法 (簡単なチュートリアルでは、削除された連絡先を回復する方法について説明します) WeChat で削除された連絡先を回復する方法 (簡単なチュートリアルでは、削除された連絡先を回復する方法について説明します) May 01, 2024 pm 12:01 PM

WeChat で削除された連絡先を回復する方法 (簡単なチュートリアルでは、削除された連絡先を回復する方法について説明します)

スーパーユーザーとして Ubuntu にログインします スーパーユーザーとして Ubuntu にログインします Mar 20, 2024 am 10:55 AM

スーパーユーザーとして Ubuntu にログインします

すぐにマスター: Huawei 携帯電話で 2 つの WeChat アカウントを開く方法が明らかに! すぐにマスター: Huawei 携帯電話で 2 つの WeChat アカウントを開く方法が明らかに! Mar 23, 2024 am 10:42 AM

すぐにマスター: Huawei 携帯電話で 2 つの WeChat アカウントを開く方法が明らかに!

thinkphpプロジェクトの実行方法 thinkphpプロジェクトの実行方法 Apr 09, 2024 pm 05:33 PM

thinkphpプロジェクトの実行方法

モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます) モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます) May 04, 2024 pm 06:01 PM

モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます)

thinkphp にはいくつかのバージョンがあります thinkphp にはいくつかのバージョンがあります Apr 09, 2024 pm 06:09 PM

thinkphp にはいくつかのバージョンがあります

See all articles