フォーム送信エラー後に返されたコンテンツが消えた場合はどうすればよいですか? 今日はこの問題を分析して解決しましょう。
状態の概要:
フォーム情報を入力して送信するときに発生する問題は、ユーザーがフォームに入力して送信した後、プログラムが要件を満たしていないと判断し、戻った後に以前に入力したフォーム情報がクリアされてしまうことです。記入される情報量が少ない場合は問題ありませんが、記入される情報量が比較的多い場合は、記入する人の機嫌に直結します。そのため、フォーム送信エラーが返った後に入力内容が消えてしまう問題の解決は、ユーザーエクスペリエンスを向上させる上で喫緊の課題となっています。
この種の問題については、次の状況をまとめました。
(1) このページは session_start 関数を使用しています。この関数の特徴の 1 つは、現在のページが更新されないようにすることです。この関数の後に次のコードを追加します。
リーリー
を追加すると、他にもいくつかの解決策があります
リーリー
(2) Header メソッドを使用してメッセージ ヘッダー Cache-control を設定し、次のコードをページに追加します。
header('Cache-control: private, must-revalidate'); //ページバウンスをサポートします。この行の前には出力がないことに注意してください
(3) session_cache_limiter メソッドを使用し、次のコードをページに追加します。
session_cache_limiter('private,must-revalidate'); //session_start メソッドの前に記述する注意点
以下は、Cache-Control メッセージ ヘッダー フィールドの補足説明です。
Cache-Control は、リクエストとレスポンスが従うキャッシュ メカニズムを指定します。要求メッセージまたは応答メッセージで Cache-Control を設定しても、別のメッセージの処理中のキャッシュ プロセスは変更されません。
リクエスト中のキャッシュ命令には、no-cache、no-store、max-age、max-stale、min-fresh、only-if-cachedが含まれ、応答メッセージ内の命令には、public、private、no-cache、no-が含まれます。ストア、変換なし、必須再検証、プロキシ再検証、最大経過時間。各メッセージの指示の意味は次のとおりです:
パブリック:
プライベート:
単一ユーザーの応答メッセージのすべてまたは一部が共有キャッシュで処理できないことを示します。これにより、サーバーは、他のユーザーのリクエストには無効なユーザーからの部分的な応答のみを記述することができます。no-cache:
リクエストまたはレスポンスメッセージをキャッシュできないことを示しますストアなし:
重要な情報が意図せず公開されるのを防ぐために使用されます。リクエスト メッセージで送信すると、リクエスト メッセージと応答メッセージの両方でキャッシュが使用されます。max-age:
クライアントが、指定された時間 (秒) を超えない存続期間を持つ応答を受信できることを示します。min-fresh:
クライアントが、現在の時間に指定された時間を加えた時間よりも短い応答時間で応答を受信できることを示します。max-stale:
クライアントがタイムアウト期間を超えて応答メッセージを受信できることを示します。 max-stale メッセージの値を指定すると、クライアントは指定されたタイムアウト期間の値を超える応答メッセージを受信する可能性があります。この記事を読んだ後、同様の問題が発生した場合は、完全に解決できます。この解決策は PHP Web サイトのみに適用されることを覚えておいてください。
http://www.bkjia.com/PHPjc/1063231.html