Cookie を取得するために更新に時間がかかるのはなぜですか?

WBOY
リリース: 2016-06-13 12:11:41
オリジナル
1077 人が閲覧しました

Cookie を取得するために更新する必要があるのはなぜですか?
初めてアクセスすると、次のエラーが報告されます:

エラーの理由は、値が$_COOKIE['a'] のものが存在しません。
<?<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'];
ログイン後にコピー

2 回目の訪問:

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) より

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート