ホームページ >バックエンド開発 >PHPチュートリアル >PHP Cookie が「setcookie()」の直後に利用できないのはなぜですか?

PHP Cookie が「setcookie()」の直後に利用できないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-14 05:25:14845ブラウズ

Why are PHP Cookies Not Immediately Available After `setcookie()`?

$_COOKIE の Cookie 値の出現の遅延について理解

setcookie() 関数を呼び出した直後に Cookie の値を取得しようとした場合PHP では、$_COOKIE['uname'] が未定義のままになる問題が発生する可能性があります。これは、HTTP 応答がクライアントに送信されるまで Cookie がインスタンス化されないために発生します。

この遅延の理由は、PHP Cookie が応答ヘッダーに含まれる Set-Cookie HTTP ヘッダーに依存しているためです。 setcookie() が呼び出されると、Set-Cookie ヘッダーが応答に追加されますが、ヘッダーはスクリプトの実行が完了するまで実際にはクライアントに送信されません。

ただし、この制限は手動で克服できます。 setcookie() を呼び出した後の $_COOKIE['uname'] 値の設定:

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

$_COOKIE 値を手動で設定すると、Cookie が使用できるようになります。スクリプトをすぐに実行してください。これにより、クライアントからの次のリクエストに依存せずに Cookie の値にアクセスできるようになります。

以上がPHP Cookie が「setcookie()」の直後に利用できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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