可以';t总是读取会话cookie


Can't always read session cookie

我有一个页面(mypage.html),它设置cookie如下:

setcookie ("sessionid", md5 (uniqid (rand())));

现在,在显示站点标题的include顶部,我有以下内容:

echo "cookie is ". $_COOKIE['sessionid'];

当我在mypage.html上时,其中包括头,echo命令会显示cookie名称,因为它应该。。。例如

cookie是4d40102ff2d2268d907dd31debc411e2 cookie是4d401

但如果我从设置cookie的页面移开,我看到的只是

cookie是

没有名字-如果我回到mypage.html,它会毫无问题地再次读取它。我不知道这是怎么发生的??有什么想法吗?

设置cookie的显式路径。默认值仅为当前目录,因此如果您导航到另一个目录中的脚本,浏览器将不会发回cookie。
// Cookie is valid for all paths ( / ) in the current domain
// This also has an explicit expiry time of 1 hour from the time it's set...
setcookie ("sessionid", md5 (uniqid (rand())), time() + 3600, "/");

不过,设置自己的会话cookie有点不寻常,当简单地启动会话时,它会为您处理:

session_start();
// Id is set for you...
echo session_id();