ホームページ  >  記事  >  バックエンド開発  >  PHP が Cookie を取得できない問題の処理

PHP が Cookie を取得できない問題の処理

卡哇伊
卡哇伊オリジナル
2020-07-06 10:11:512985ブラウズ

php が Cookie を取得できない問題に対処する方法: まず、キー a と値 value で Cookie を設定し、次に Cookie 文字列で a の Cookie を検索し、その値を返します。最後に、ブラウザで再度アクセスしてください。 サーバーに関しては、a=value がもう 1 つあります。

PHP が Cookie を取得できない問題の処理

#問題の詳細

まず、次の簡単なコードを記述します。


コードは次のとおりです。


<?php 
    setcookie(&#39;a&#39;,&#39;value&#39;);
    print $_COOKIE[&#39;a&#39;];

初めてアクセスすると、エラーが報告されます:

エラーの理由は、

$_COOKIE の値です。 ['a'] は存在しません。 2 回目の訪問: value

関連学習の推奨事項: php ビデオ チュートリアル<a href="https://www.php.cn/course/list/29/type/2.html" target="_blank"></a><br>

質問: 初めてアクセスしたときに Cookie がないのはなぜですか? ?最初に設定してから取得する必要はありませんか? ?

回答: Firefox の firebug を使用して「ネットワーク」を表示します:

クライアント:

ご覧のとおり、ブラウザ(クライアント)はサーバーにリクエストを送信しますが、リクエストを行う際、リクエストヘッダー情報には、どのようなテキストを受け取りたい(Accept)かをサーバーに伝えるためのさまざまなパラメータが含まれています。どのようなエンコード形式 (Accept-Encoding)、どの言語 (Accept-Language) など、もちろん Cookie もサーバー (Cookie) に渡されます。

サーバー側:

最初のステップ:

setcookie('a','value')

Cookie が Set されているためクライアント側では、setcookie 関数自体は Cookie を設定できません。ヘッダー情報を通じてブラウザに通知することしかできません。「兄弟、キー a と値 value を使用して Cookie を設定したいのですが、あなたのところで設定するのを手伝ってください」 . . 「さあ、今日は幸せだからクッキーをあげるね。」とも理解できます。

2 番目のステップ:

$_COOKIE['a']$_COOKIE['a']

非常に簡単で、操作はブラウザの検索から Cookie を取得することです。キー a を持つ Cookie の文字列を取得し、その値を返します。

明らかに、「キー a」を持つこの Cookie は見つかりません。クライアントがサーバーにアクセスするときには、この Cookie はまったく存在せず、前のステップのヘッダーが存在しないためです。 Cookie の情報はまだクライアントに返されていません (php はステートメントが上から下に実行されるまでクライアントに戻りません)

ステップ 3: サーバーは情報を返します

, 返されたヘッダー情報には

Set-Cookie a=value が含まれています。ブラウザはこのヘッダー情報を受け取り、コンピューター上のファイルに Cookie を保存します。Cookie の保存場所はブラウザーが異なっても同様であるようです。違いますが、これはこの記事の範囲外です。

ブラウザを更新してサーバーに再度アクセスすると、多くのヘッダー情報もサーバーに送信されますが、今回はさらに多くの Cookie が存在します。A

a=値。したがって、$_COOKIE['a'] は、Cookie 文字列からキー a を持つ Cookie の値を自然に見つけることができます。

以上がPHP が Cookie を取得できない問題の処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。