ホームページ  >  記事  >  バックエンド開発  >  PHPで送信後にフォームがクリアされないようにする方法

PHPで送信後にフォームがクリアされないようにする方法

藏色散人
藏色散人オリジナル
2020-11-17 09:57:492512ブラウズ

送信後にPHPフォームをクリアしない実装方法: まず該当するコードファイルを開き、「session_start()」の後ろに「header("Cache-control: private");という文を文字の前に書きます」出力;「以上です。

PHPで送信後にフォームがクリアされないようにする方法

推奨: 「PHP ビデオ チュートリアル

php フォームは送信後に返されますが、フォーム内容がクリアされない 解決方法

登録時に推奨情報をたくさん入力して送信することが多いのですが、いずれかの情報が間違っているため、登録時に以前に入力した内容がすべて消えてしまいます。これにより、ユーザーは再度入力する情報を失うことになり、ユーザー エクスペリエンスに影響を及ぼし、ユーザーの喪失を引き起こす可能性があります。

解決策は、 session_start() の後、文字出力の前に header("Cache-control: private") を記述することです。

Web ページのキャッシュは、「Cache-control: private」によって決まります。 「HTTP メッセージ ヘッダーのコントロール」。一般的な値には、private、no-cache、max-age、must-revalidate などが含まれます。デフォルトは private です。その機能は、さまざまな再参照方法に応じて次の状況に分類されます。

(1) 新しいウィンドウを開く

値はプライベート、キャッシュなし、再検証が必要で、新しいウィンドウを開きます。アクセスするウィンドウ 毎回サーバーに再度アクセスします。

max-age 値が指定されている場合、この値内ではサーバーは再度アクセスされません。例:

Cache-control: max-age=5 (つまり、現在のアクセス5 秒以内にこの Web ページをもう一度実行すると、サーバーにアクセスできません)

(2) アドレス バーに入力します

値がプライベートまたは再検証が必要な場合は、その値にのみアクセスできます。初めてサーバーにアクセスし、二度とアクセスしないでください。

値はキャッシュなしなので、毎回アクセスされます。

値が max-age の場合、有効期限が切れるまで再度アクセスすることはできません。

(3) 戻るボタンを押します。

の値が private、must-revalidate、max-age の場合、再表示されません。

## の値が# キャッシュなしの場合、毎回

に繰り返しアクセス (4) 更新ボタンを押す

値が何であっても、繰り返しアクセスされます

キャッシュ制御値が「no-cache」の場合、このページにアクセスすると、一時的なインターネット記事フォルダーにページのバックアップが残りません。

さらに、「Expires」値を指定するとキャッシュにも影響します。たとえば、[Expires] の値が長期間経過した時間として指定されている場合、このネットワークにアクセスするときにアドレス バーで Enter キーを繰り返し押すと、アクセスは毎回繰り返されます: Expires: Fri, 31 Dec 1999 16:00 :00 GMT

例: IE

http 応答メッセージ ヘッダー設定でページ キャッシュを禁止する:

CacheControl = no-cache
Pragma=no-cache
Expires = -1

Expires は良いことです。サーバー上の Web ページが変更された場合多くの場合、即時有効期限が切れることを示す - 1 に設定します。 Web ページが毎日午前 1 時に更新される場合、有効期限を翌日の午前 1 時に設定できます。

HTTP1.1 サーバーが CacheControl = no-cache を指定すると、ブラウザは Web ページをキャッシュしません。

レガシー HTTP 1.0 サーバーは Cache-Control ヘッダーを使用できません。

したがって、HTTP 1.0 サーバーとの下位互換性を保つために、IE は Pragma:no-cache ヘッダーを使用して HTTP に対する特別なサポートを提供します。

クライアントが安全な接続 (https://) 経由でサーバーと通信し、サーバーが応答で Pragma:no-cache ヘッダーを返した場合、

Internet Explorer は、応答。注意: Pragma:no-cache は、安全な接続で使用される場合にのみキャッシュを防止します。安全でないページで使用される場合、処理は Expires:-1 と同じです。ページはキャッシュされますが、すぐに期限切れとしてマークされます。

Cache-Control メッセージ ヘッダー フィールドの説明

Cache-Control は、リクエストと応答が後に続くキャッシュ メカニズムを指定します。要求メッセージまたは応答メッセージで

Cache-Control を設定しても、別のメッセージの処理中のキャッシュ プロセスは変更されません。リクエスト中のキャッシュ命令には、no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached が含まれ、応答メッセージ内の命令には、public、private、no-cache、no が含まれます。 -store、no-transform、must-revalidate、proxy-revalidate、max-age。各メッセージの指示の意味は次のとおりです。

Public は、応答を任意のキャッシュ領域にキャッシュできることを示します。

プライベートは、単一ユーザーの応答メッセージの全部または一部を共有キャッシュで処理できないことを示します。これにより、サーバーは、他のユーザーのリクエストには無効なユーザーからの部分的な応答のみを記述することができます。

no-cache は、要求または応答メッセージをキャッシュできないことを示します。

no-store は、重要な情報が不用意に公開されるのを防ぐために使用されます。リクエスト メッセージで送信すると、リクエスト メッセージと応答メッセージの両方でキャッシュが使用されます。

max-age は、クライアントが指定された時間 (秒単位) を超えない存続期間を持つ応答を受信できることを示します。

min-fresh は、クライアントが現在時刻に指定された時間を加えた時間よりも短い応答時間で応答を受信できることを示します。

max-stale は、クライアントがタイムアウト期間を超えて応答メッセージを受信できることを示します。 max-stale メッセージの値を指定すると、クライアントは指定されたタイムアウト期間の値を超える応答メッセージを受信する可能性があります。

以上がPHPで送信後にフォームがクリアされないようにする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。