php cookie が値を取得できない場合の解決策: 1. "setcookie('a','value')" を設定します; 2. "$_COOKIE['a']$_COOKIE['a'] "; を実行します。 3. サーバーに情報を返すように要求するだけです。
この記事の動作環境:Windows7システム、php5.5.12バージョン、DELL G3コンピュータ
phpが最初にCookieを取得できない問題time
まず、次の簡単なコードを記述します。
コードは次のとおりです:
<?php setcookie('a','value'); print $_COOKIE['a'];
初めてアクセスすると、エラーが報告されます:
エラーの理由 $_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 サイトの他の関連記事を参照してください。