(PHP)我以这种方式在login.php页面中设置了cookie:
setcookie('cookie_id',$id);
我打印cookie并看到正确的值但是当我用以下内容更改页面时
header($login_url);
我丢失了所有的cookie,我不知道为什么。有人可以帮帮我吗?
答案 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的当前目录。