如何使' cookie '在某些路径中可用,但在其子目录中不可用


How to make `cookie` available in certain path but not in its subdirectories

php中,我使用setcookie来创建cookie,正如文档所说,如果您不指定path参数,cookie将在当前目录及其所有子目录中可用。但我需要cookie将只在当前目录中可用,而不是在其子目录中。我怎样才能做到这一点呢?

//it is available in current directory and all of its sub-directories:
setcookie("TestCookie", $value);
//with the same effect:
setcookie("TestCookie", $value,/current-directory/);

我想排除/current-directory/*

非常感谢

据我所知,这是不可能的

但是您可以将您的信息存储在$_SESSION变量中,并使用$_SERVER["REQUEST_URI"]自己进行路径检查。

路径选项

控制何时发送Cookie头的另一种方法是指定路径选项。与domain选项类似,path表示在发送Cookie头之前必须存在于被请求资源中的URL路径。这种比较是通过逐个字符地比较选项值与请求URL的开头来完成的。如果字符匹配,则发送Cookie报头。示例:

Set-Cookie: name=Nicholas; path=/blog

在这个例子中,路径选项将匹配/blog,/blogroll等;任何以/blog开头的内容都是有效的。请注意,只有在验证了域选项后才会进行这种比较。path选项的默认值是发送Set-Cookie报头的URL的路径。

来源:https://www.nczonline.net/blog/2009/05/05/http-cookies-explained/