PHP で $_COOKIE を使用して a の値を取得するsetcookie() を呼び出した直後に新しく作成された Cookie は、目的の値が使用できなくなる可能性があります。この現象は、HTTP Cookie 処理の非同期の性質から発生します。
setcookie() が呼び出されると、PHP スクリプトは Cookie を作成するコマンドを発行します。それを送信 HTTP 応答に含めます。ただし、スクリプトの実行が完了するまで、応答はクライアント (ブラウザーなど) に送信されません。
$_COOKIE 変数は現在の HTTP リクエストに含まれる Cookie を反映するため、HTTP リクエスト中に Cookie に加えられた変更はすべて反映されます。サーバー側スクリプトの実行は、$_COOKIE ではすぐには利用できません。
タイムライン:
$_COOKIE に新しく設定された Cookie 値が確実に反映されるようにするには、同じ内部でそれをオーバーライドします。 script:
setcookie('uname', $uname, time() + 60 * 30); $_COOKIE['uname'] = $uname;
このアクションは、送信 HTTP 応答に Cookie を作成し、その値を $_COOKIE 変数に即座に設定して、現在のスクリプト実行内で使用できるようにします。
以上がPHP で `setcookie()` を使用した後、Cookie 値が失われるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。