ホームページ >バックエンド開発 >PHPの問題 >PHPのCookieが値を取得できない問題の解決方法

PHPのCookieが値を取得できない問題の解決方法

藏色散人
藏色散人オリジナル
2021-05-12 09:22:112268ブラウズ

php cookie が値を取得できない場合の解決策: 1. "setcookie('a','value')" を設定します; 2. "$_COOKIE['a']$_COOKIE['a'] "; を実行します。 3. サーバーに情報を返すように要求するだけです。

PHPのCookieが値を取得できない問題の解決方法

この記事の動作環境:Windows7システム、php5.5.12バージョン、DELL G3コンピュータ

phpが最初にCookieを取得できない問題time

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

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

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

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

エラーの理由 $_COOKIE['a'] の値が存在しません。 2 回目の訪問:

#Q: 最初の訪問時に Cookie がないのはなぜですか? ?最初に設定してから取得する必要はありませんか? ?

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

クライアント:

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

サーバー側:

ステップ 1: setcookie('a','value')

Cookie はクライアントで設定されるため、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 の保存場所はブラウザごとに異なるようです。これは、この記事の範囲。


ブラウザを更新してサーバーに再度アクセスすると、多くのヘッダー情報もサーバーに持ち込まれますが、今回持ち込まれる Cookie には、 a=value がもう 1 つあります。したがって、$_COOKIE['a'] は、Cookie 文字列からキー a を持つ Cookie の値を自然に見つけることができます。

推奨学習: 「PHP ビデオ チュートリアル

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

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