2012-01-30 80 views
1

我有一个网页(的mypage.html),它设置一个cookie如下:现在不能总是读会话cookie

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

,在一个顶部包括显示网站标题,我有以下:

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

当我在包含头文件的mypage.html上时,echo命令会显示cookie名称,因为它应该...例如

Cookie是4d40102ff2d2268d907dd31debc411e2 cookie是4d40102ff2d2268d907dd31debc411e2

但如果我从设置cookie的网页aeway移动,我看到的是

Cookie是

与没有名字 - 如果我回到mypage.html它再次读取没有问题。我不知道这是怎么发生的?有任何想法吗?

+0

更好地使用$ _SESSION代替$ _COOKIE。 – powtac 2012-01-30 21:42:45

+0

不客气,达伦。 @powtac是正确的,如果你在上下文中使用这个var,SESSION会更好。 – 2012-01-30 21:51:14

回答

1

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