Php Can';不要总是读取会话cookie

Php Can';不要总是读取会话cookie,php,Php,我有一个页面(mypage.html),它设置了一个cookie,如下所示: setcookie ("sessionid", md5 (uniqid (rand()))); 现在,在显示站点标题的include顶部,我有以下内容: echo "cookie is ". $_COOKIE['sessionid']; 当我在mypage.html上时,它包括了标题,echo命令显示cookie名称,正如它应该显示的那样…例如 cookie是4d40102ff2d2268d907dd31debc4

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

setcookie ("sessionid", md5 (uniqid (rand())));
现在,在显示站点标题的include顶部,我有以下内容:

echo "cookie is ". $_COOKIE['sessionid'];
当我在mypage.html上时,它包括了标题,echo命令显示cookie名称,正如它应该显示的那样…例如

cookie是4d40102ff2d2268d907dd31debc411e2 cookie是4d40102ff2d2268d907dd31debc411e2

但是如果我离开设置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();

设置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();

最好使用$\u会话而不是$\u COOKIE。不客气,达伦。@powtac是对的,如果你在上下文中使用这个变量,SESSION会更好。最好使用$\u SESSION而不是$\u COOKIE。不客气,Darren。@powtac是正确的,如果您在上下文中使用这个var,会话会更好。