Setcookie因不同的URL而异

时间:2011-03-14 08:20:46

标签: php setcookie

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

http://www.myweb.com/series/Setayesh/Part-1
在此网址中,我通过此

检查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
and so on

但是当网址成为时

http://www.myweb.com/series/Pezeshkan/Part-1
if条件不执行它总是在同一个浏览器中进入其他条件。这是什么问题?当我设置cookie时,我没有设置任何网址然后为什么它在这种情况下表现不同。

1 个答案:

答案 0 :(得分:5)

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

/series/Setayesh/Part-1

因此,如果该路径变为

/series/Pezeshkan/Part-1

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

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

这应该可以解决问题。