当我换页时,饼干消失了


the cookie disappear when I change page

(PHP)我在我的login.php页面设置cookie:

setcookie('cookie_id',$id);

我打印cookie,我看到了正确的值,但是当我用

改变页面时:
header($login_url);
我丢了所有的饼干,我不知道为什么。有人能帮我吗?

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

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

注意第三个参数是过期时间,默认设置为0。根据文档,这意味着:

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

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

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

From PHP manual:

cookie在服务器上可用的路径。如果设置为'/',cookie将在整个域内可用。如果设置为'/foo/', cookie将只在/foo/目录和所有子目录(如/foo/bar/)中可用。默认值是cookie设置的当前目录