快速提问:可以设置cookie有效的路径,但也可以从cookie中获取(读取)此路径(在PHP中)?
否则:是否可以延长cookie的时间,而不知道它的路径是什么(但保持路径相同)?
答案 0 :(得分:8)
由于大多数浏览器仍然使用Netscape的规范(请参阅cached version of http://wp.netscape.com/newsref/std/cookie_spec.html)而不是RFC 2109或RFC 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时,这可能会导致(安全性?)错误设置未设置。)