猿问

在setcookie()之后立即访问$cookie

在setcookie()之后立即访问$cookie

我试图访问cookie的值(使用$_COOKIE)之后,立即调用setcookie()函数在PHP中。当我这么做的时候,$_COOKIE['uname']还没准备好。为什么?

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

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


繁华开满天机
浏览 1090回答 3
3回答

繁花如伊

$_COOKIE由于Web的无状态性,在页面加载时设置。如果希望立即访问,可以设置$_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);  }

慕神8447489

在将响应发送回客户端之前,Cookie是不会设置的,并且在PHP中直到之后客户端的下一个请求才可用。但是,当您在脚本中设置cookie时,您可以:setcookie('uname', $uname, time()+60*30);$_COOKIE['uname'] = $uname;
随时随地看视频慕课网APP
我要回答