是否有可能获得存储cookie的路径?

时间:2010-05-10 13:02:42

标签: php http cookies

快速提问:可以设置cookie有效的路径,但也可以从cookie中获取(读取)此路径(在PHP中)?

否则:是否可以延长cookie的时间,而不知道它的路径是什么(但保持路径相同)?

4 个答案:

答案 0 :(得分:8)

由于大多数浏览器仍然使用Netscape的规范(请参阅cached version of http://wp.netscape.com/newsref/std/cookie_spec.html)而不是RFC 2109RFC 2965中指定的规范,因此Cookie请求标头字段中的列表元素将只包含名称和值对:

  

当从HTTP服务器请求URL时,浏览器将匹配所有cookie的URL,如果它们中的任何一个匹配,则包含所有匹配cookie的名称/值对的行将包含在HTTP请求中。以下是该行的格式:

Cookie: NAME1=OPAQUE_STRING1; NAME2=OPAQUE_STRING2 ...

只有较新的规范(RFC 2109和RFC 2965)允许客户端在请求中发送路径(摘自RFC 2109):

  

标题的语法是:

cookie          =       "Cookie:" cookie-version
                        1*((";" | ",") cookie-value)
cookie-value    =       NAME "=" VALUE [";" path] [";" domain]
cookie-version  =       "$Version" "=" value
NAME            =       attr
VALUE           =       value
path            =       "$Path" "=" value
domain          =       "$Domain" "=" value
     

[...]的价值      path属性必须是Path属性中的值(如果有)      对应的Set-Cookie响应头。否则      应该从Cookie请求标头中省略属性。 [...]

答案 1 :(得分:3)

也包括进入cookie值的路径

答案 2 :(得分:1)

是的,当cookie设置为根cookie时,您可以更改/延长cookie时间。那就是你应该在最后一个参数中用“/”设置cookie。看下面的代码......

setcookie("Message", $msg, time()+60, "/");

如果没有,基本上cookie将存储在当前路径(页面根目录)中。你可以尝试访问它。

答案 3 :(得分:0)

PHP无法读取cookie的路径,因为浏览器只向服务器发送应该发送的cookie的值,仅此而已。

您可能会尝试重新设置cookie而不提供路径,但我非常怀疑它是否可行。 可能有许多不同的相关cookie具有相同的名称和越来越精确的路径。如果您尝试设置具有相同名称但没有路径浏览器的cookie,则不知道它应该更新哪个cookie(可能是最精确的路径?但是当您希望精确的cookie时,这可能会导致(安全性?)错误设置未设置。)