$_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 サイトの他の関連記事を参照してください。