setcookie之后立即访问$ _COOKIE

问题描述

$_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);  
}

解决方法

在PHP中$_COOKIE调用setcookie()函数后,我试图立即访问cookie的值(使用)。当我这样做时,$_COOKIE['uname']没有设置。为什么?

但是请注意,$_COOKIE['uname']在下次执行脚本时(例如在刷新页面后)将按预期进行设置。

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