まず、Header メソッドを使用してメッセージ ヘッダーを設定します Cache-control
QUOTE:
header('Cache-control: private, must-revalidate') //ページ バウンスをサポートします
2 番目に、session_cache_limiter メソッドを使用します
QUOTE:
//session_start メソッドの前に記述することに注意してください
session_cache_limiter('private, must-revalidate');
補足:
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 メッセージの値を指定すると、クライアントは指定されたタイムアウト期間の値を超える応答メッセージを受信する可能性があります。
フォームの更新について
Q: ブラウザの戻るボタンをクリックすると、すべてのフィールド情報がクリアされるのはなぜですか?
A: これは、フォーム送信ページで session_start 関数を使用したためです。この関数は、現在のページがキャッシュされないよう強制します。解決策は、Session_start 関数の後に header("Cache-control: private") を追加することです。PHP プログラムでは、この行の前に出力を含めることはできないことに注意してください。
補足: セッションベースのソリューションもあります。
QUOTE:
session_cache_limiter('nocache');//フォームをクリアします
session_cache_limiter (' private'); //セッションが有効な間のみ、フォームをクリアしません
session_cache_limiter('public') //セッションが使用されていない場合と同様に、フォームをクリアしません
session_start() で使用できます。 session_cache_limiter("private,max-age=10800"); を追加します。