1. ホーム
  2. php

[解決済み] setcookie() の直後に $_COOKIE にアクセスする

2023-05-24 06:22:16

質問

私はクッキーの値にアクセスしようとしています ( $_COOKIE を呼び出した直後に setcookie() 関数を呼び出した後、PHPで そうすると $_COOKIE['uname'] は設定されません。 なぜでしょうか?

ただし $_COOKIE['uname'] は、ページ更新後など、スクリプトの次の実行時に期待通りに設定されることに注意してください。

setcookie('uname', $uname, time() + 60 * 30);
echo "Cookie value: " . $_COOKIE['uname'];

どのように解決するのですか?

$_COOKIE は、ウェブのステートレスな性質により、ページがロードされるときに設定されます。もし、すぐにアクセスしたい場合は $_COOKIE['uname'] を自分で設定するか、中間変数を使用します。

例えば

if (isset($_COOKIE['uname'])) {
    // get data from cookie for local use
    $uname = $_COOKIE['uname'];
}
else {
    // set cookie, local $uname already set
    setcookie('uname', $uname, time() + 1800);  
}