当我改变页面时,cookie消失了

时间:2015-10-22 09:06:16

标签: php cookies

(PHP)我以这种方式在login.php页面中设置了cookie:

setcookie('cookie_id',$id);

我打印cookie并看到正确的值但是当我用以下内容更改页面时

header($login_url);

我丢失了所有的cookie,我不知道为什么。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:3)

您必须在/函数中指定setcookie()作为路径,因此Cookie将在您网站的每个路径上提供。要做到这一点:

setcookie('cookie_id', $id, 0, '/');

请注意,第三个参数是过期时间,默认设置为0。根据{{​​3}},它意味着:

  

如果设置为0或省略,则cookie将在会话结束时(浏览器关闭时)到期。

答案 1 :(得分:1)

如果您有人工网址或子文件夹(例如www.domain.com/path1/path2/),则必须将Cookie路径设置为/以适用于所有路径,而不仅仅是当前路径。

setcookie('cookie_id', $cookie_id, time() + 60*60*24*30, '/');

从PHP手册:

可在其上使用cookie的服务器上的路径。如果设置为“/”,则cookie将在整个域中可用。如果设置为'/ foo /',则cookie只能在/ foo /目录和所有子目录中使用,例如/ foo / bar / of domain。默认值是设置cookie的当前目录。