ホームページ >バックエンド開発 >PHPチュートリアル >フォーム送信エラー後に返されたコンテンツが消える問題を解決
(PHP Webサイトのみ、フォーム送信エラーが返った後に入力内容が消えてしまう問題を解決) フォーム情報を入力して送信する際、ユーザーが入力して送信する際に問題が発生します。フォームの場合、プログラムは要件を満たしていないと判断し、リターンすると、以前に入力されたフォーム情報はリターン後にクリアされます。記入される情報量が少ない場合は問題ありませんが、記入される情報量が比較的多い場合は、記入する人の機嫌に直結します。そのため、フォーム送信エラーが戻った後に入力内容が消えてしまう問題の解決は、ユーザーエクスペリエンスを向上させる上で喫緊の課題となっています。このような問題について、以下の状況をまとめました。
(1) このページは session_start 関数を使用しています。この関数には、現在のページが強制的に更新されないという特性があります。この関数の後に次のコードを追加します。header("Cache- control: private");//PHP プログラムでは、この行の前に出力を含めることはできないことに注意してください。追加する解決策は他にもいくつかあります。
session_cache_limiter('nocache'); //session_start の前にフォームをクリアします。
session_cache_limiter('private'); //セッションが有効な間のみ、フォームをクリアしません。(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 が含まれます。 -store、no-transform、must-revalidate、proxy-revalidate、max-age。
各メッセージの指示の意味は次のとおりです。
パブリック: 応答を任意のキャッシュ領域にキャッシュできることを示します。