【发布时间】:2010-08-03 03:39:39
【问题描述】:
我使用以下方法在 PHP 中设置了我的 cookie:
setcookie("id", 100, time()+100000, "/AP", "www.mydomain.com", 0, true);
当我查看存储在浏览器中的 cookie 时,它看起来像这样:
Name: id
Content: 100
Domain: .www.mydomain.com
Path: /AP
注意 .在域中
当我在 javascript 中设置 cookie 时,我得到了相同的结果,除了:
Name: id
Content: 100
Domain: www.mydomain.com
Path: /AP
域不同。为什么我的 PHP cookie 放了一个 '.'在 www.mydomain.com 和 javascript 前面没有。
以下是我用来创建 cookie 的 javascript 代码:
function SetCookie(cookieName,cookieValue,nDays) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0) nDays=1;
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)
+ ";expires="+expire.toGMTString();
}
有什么想法吗?
更新:
当我尝试在 javascript 中使用以下函数阅读此内容时:
function ReadCookie(cookieName) {
var theCookie=""+document.cookie;
var ind=theCookie.indexOf(cookieName);
if (ind==-1 || cookieName=="") return "";
var ind1=theCookie.indexOf(';',ind);
if (ind1==-1) ind1=theCookie.length;
return unescape(theCookie.substring(ind+cookieName.length+1,ind1));
}
我无法使用 ReadCookie 函数(上图)从包含以下内容的 cookie 中获取值:
Domain: .www.mydomain.com
然而 cookie 包含:
Domain: www.mydomain.com
工作得很好。
【问题讨论】:
-
这个问题的标题暗示你在阅读 cookie 时遇到了困难,但问题本身并没有提到这一点……这是什么情况 - 你真的在阅读 cookie 上有困难吗?
-
@thomasrutter - 很抱歉,我完全忘了添加那部分。此后,我更新了问题以包含 ReadCookie 函数和其他相关信息。
-
您将 cookie 设置为仅 http,这意味着 javascript 无法与之交互。去掉
setcookie的最后一个参数或者设置成false,应该可以用javascript访问了。 -
@munch:这就是答案!谢谢!
标签: php javascript cookies