2016-09-20 62 views
0

php中,我使用setcookie来创建cookie,如docs所述,如果您未指定path参数,则Cookie将在当前目录及其所有子目录。但我需要的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/*

非常感谢您

+2

我不知道'setcookie()函数'函数内的溶液中。您可以简单地使用'$ _SERVER [“REQUEST_URI”]或$ _SERVER [“PHP_SELF”]'和一个正则表达式来检查当前脚本/ uri的路径,以使用或忽略该cookie。 –

回答

0

据我所知,这是不可能的。

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

的路径选择

的另一种方法,以控制当Cookie头将被发送是指定路径的选项。与域选项类似,path指示在发送Cookie标头之前必须存在于请求的资源中的URL路径。该比较是通过将选项值字符与请求URL的开头进行比较来完成的。如果字符匹配,则发送Cookie标头。示例:

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

在这个例子中,路径选择将匹配/博客,/网志串连等;任何以/ blog开头的内容都是有效的。请注意,只有域选项通过验证后才能进行比较。 path选项的默认值是发送Set-Cookie头的URL的路径。

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

相关问题