Cookie を取得するために更新する必要があるのはなぜですか?
初めてアクセスすると、次のエラーが報告されます:
<?<span style="color: #000000;">php </span><span style="color: #008080;">setcookie</span>('a','value'<span style="color: #000000;">); </span><span style="color: #0000ff;">print</span> <span style="color: #800080;">$_COOKIE</span>['a'];
Q: 最初の訪問時に応答がなかったのはなぜですか?クッキー? ?最初に設定してから取得する必要はありませんか? ? A: Firefox の firebug を使用して「ネットワーク」を表示します:
クライアント: 、ブラウザ(クライアント)はリクエストをサーバーに送信するときに、リクエストヘッダー情報にさまざまなパラメータが含まれており、サーバーにどのような種類のテキスト(Accept)とどのようなエンコード形式(Accept-Encoding)、どの言語かを伝えます。 (Accept-Language) など、もちろん Cookie もサーバー (Cookie) に渡されます。 サーバー側:
ステップ 1:
setcookie('a','value')Cookie が Set されているためクライアントでは、setcookie 関数自体は Cookie を設定できません。ヘッダー情報を通じてブラウザに通知することしかできません。「兄弟、Cookie を設定したいのですが、キーは a、値は value、そこに設定するのを手伝ってください。」 。 「さあ、今日は幸せだからクッキーをあげるね。」とも理解できます。
ステップ 2: $_COOKIE['a']
$_COOKIE['a'] 実行される操作は、ブラウザによってもたらされる Cookie です。文字列内の
は、キー a を持つ Cookie を検索し、その値 を返します。
明らかに、「キー a」を持つこの Cookie は見つかりません。クライアントがサーバーにアクセスすると、この Cookie はがまったく存在せず、前のステップで設定した cookie のヘッダー情報がまだクライアントに返されていません (php はステートメントが上から下に実行されるまでクライアントに戻りません )
ステップ 3: サーバーは情報を返します
その中で、返されたヘッダー 情報には「Set-Cookie a=value」が含まれます。ブラウザーはこのヘッダー情報を受け取り、コンピューター上のファイルに Cookie を保存します。これは、ブラウザーごとに異なるようです。この記事の。
ブラウザを更新してサーバーに再度アクセスすると、さらに多くの情報が表示されます情報はサーバーに送信されますが、今回は送信される Cookie に追加の a=value が含まれています。したがって、$_COOKIE['a'] は、Cookie 文字列からキー a を持つ Cookie の値を自然に見つけることができます。
Wiz Notes (Wiz) より