ホームページ  >  記事  >  バックエンド開発  >  PHP の初心者が Cookie について質問しています。

PHP の初心者が Cookie について質問しています。

WBOY
WBOYオリジナル
2016-10-10 11:56:17877ブラウズ

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

リーリー

なぜ常に NULL が出力されるのですか? 「myvalue」が単に設定された出力ではないのはなぜですか?

返信内容:

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

リーリー

なぜ常に NULL が出力されるのですか? 「myvalue」が単に設定された出力ではないのはなぜですか?

COOKIEはクライアントから持ってくるので、読み込んだCOOKIEは最後のスクリプトで設定する必要がありますが、このスクリプトを実行するたびに、前回設定したCOOKIEを削除して、新しいCOOKIEを設定する必要があります。次回実行されるスクリプトによって読み取られます。次に、削除-セット-削除-セットのサイクルを続けます。 。 。だから読めないんです。
COOKIE を SESSION に変更すると、SESSION は COOKIE ほど遅くなりません。サーバー上に保存されます。

COOKIE の割り当ては、次の閲覧リクエストまで有効にならないためです。でも、次に閲覧するときに削除してしまうので、このクッキーがどれだけあなたにとって憎しみを持っているのか気になります...

このリクエストの $_COOKIE['mycookie'] を削除しました。setcookie を有効にするためには、次のリクエストが必要です。
$_COOKIE は、Cookie 情報を PHP に渡すブラウザです。
setcookie は、ブラウザに Cookie 情報を通知します。
つまり、$_COOKIE['xxx'] を生成するには、setcookie('xxx') が配置されている request が最初に実行される必要があります。

「myvalue」を出力したい場合は、コメントアウトできます

。アウトプットできますunset($_COOKIE[$cookie_name]);

unset はすぐに有効になりますが、set_cookie は次のリクエストまで有効になりません。

同様に、unset文を削除した場合、出力結果は先ほどのset_cookieではなく、最後のset_cookieになります。

たとえば、未設定の文を削除して更新すると、

と表示されますが、問題ありません。 string(7) "myvalue"その後、myvalue を myvalue2 に変更して更新しましたが、まだ表示されました

string(7) "myvalue"表示するには再度更新してください

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