我正在使用此代码
setcookie("we", 2, time()+3600*24*365);
echo "'".$_COOKIE["we"]."'";
为我的网站设置Cookie。
这在localhost上运行正常,我得到'2'
但是当我在我的在线网站上运行时,我得到''
。为什么会这样?
更新 我正在尝试使用此代码来测试我的cookie问题
$c = "cookiesfwefwfwef";
if(isset($_COOKIE[$c])){
echo "The cookie '".$c."' is going to be destroyed";
setcookie($c, 23, time()-3600*24*365, $site_url);
}else{
echo "The cookie '".$c."' is going to be set";
setcookie($c, 23, time()+3600*24*365, $site_url);
}
问题是,每次我在我的在线网站上刷新浏览器时,我都会收到The cookie 'cookiesfwefwfwef' is going to be set
,但是当我在localhsot网站上刷新浏览器时,我会The cookie 'cookiesfwefwfwef' is going to be set
然后The cookie 'cookiesfwefwfwef' is going to be destroyed
然后The cookie 'cookiesfwefwfwef' is going to be set
等等。
我做错了吗?
答案 0 :(得分:1)
setcookie()
将在浏览器端设置COOKIE。因此,您无法在同一请求中使用$_COOKIE
。
在setcookie之后,当浏览器再次发送请求时,您将获得$_COOKIE
的值。
如果您想在同一个请求中使用$_COOKIE
,请按以下方式为其分配值:
$_COOKIE["we"] = 2;
答案 1 :(得分:0)
cookie值将在下一页刷新时打印,您还没有指定cookie路径。
setcookie("we", 2, strtotime("+1 year"), "/");
echo "'".$_COOKIE["we"]."'";