ホームページ >バックエンド開発 >PHPチュートリアル >$_COOKIE が `setcookie()` をすぐに反映しないのはなぜですか? すぐにアクセスするにはどうすればよいですか?

$_COOKIE が `setcookie()` をすぐに反映しないのはなぜですか? すぐにアクセスするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-11 07:22:18164ブラウズ

Why Doesn't $_COOKIE Reflect `setcookie()` Immediately, and How Can I Access It Instantly?

setcookie() 呼び出し後の Cookie 値へのアクセス

setcookie() を呼び出した直後に $_COOKIE を使用して Cookie の値にアクセスしようとした場合関数を実行すると、$_COOKIE['uname'] が設定されていないように見える場合があります。これは、Cookie が設定されてもすぐには使用できないために発生します。

この理由は、応答がクライアントに送り返されるまで Cookie が設定されないためです。 PHP は、クライアントによって次のリクエストが行われるまで Cookie にアクセスできません。

すぐに Cookie にアクセスする

この問題を回避するには、手動で設定します。 setcookie() を呼び出した後の $_COOKIE の Cookie 値。これにより、同じスクリプト内で Cookie の値にすぐにアクセスできるようになります。

setcookie('uname', $uname, time() + 60 * 30);
$_COOKIE['uname'] = $uname;

ブラウザと $_COOKIE のマニュアルの両方で Cookie を設定すると、setcookie() を使用して設定した後、すぐにその値にアクセスできます。 .

以上が$_COOKIE が `setcookie()` をすぐに反映しないのはなぜですか? すぐにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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