1

嗨,我有设置 cookie 的问题。我有一个这样的网址

http://www.myweb.com/series/Setayesh/Part-1
在这个 url 我检查是否设置了 cookie

if(isset($_COOKIE['cookiename']))
{
 //Perform some operations
}
else
{
setcookie('cookiename',$value,time()+36000)
}

它适用于所有网址,例如

http://www.myweb.com/series/Setayesh/Part-1
http://www.myweb.com/series/Setayesh/Part-1
http://www.myweb.com/series/Setayesh/Part-1
等等

但是当 url 变成

http://www.myweb.com/series/Pezeshkan/Part-1
if 条件不执行它总是在同一浏览器中以 else 条件出现。这是什么问题?当我设置 cookie 时,我没有设置任何 url,那么为什么它在这种情况下表现不同。

4

1 回答 1

5

问题是,cookie 设置为您请求的路径。在您的情况下,您正在为路径发出 cookie

/series/Setayesh/Part-1

因此,如果该路径更改为

/series/Pezeshkan/Part-1

您无法再看到 cookie,因为它是针对另一条路径发出的。setcookie 函数有第四个参数“path”,它允许明确指定路径。如果将其设置为“/”,则 cookie 将对整个域有效:

setcookie('cookiename',$value,time()+36000, '/')

这应该可以解决问题。

于 2011-03-14T08:35:14.430 回答