【发布时间】:2011-06-30 00:36:18
【问题描述】:
我正在尝试使用 javascript 设置一个 cookie,并使用 php 在另一个页面中读取它。 我可以通过这样做来编写cookie
document.cookie = cookieName+"="+cookieValue;
我部分工作。 - cookie 已写入,我可以使用 $_COOKIE[cookieName] 读取它,但只能在同一个网页中。
这真的不是很有用。我需要在另一页阅读它。我通常在 asp.net 和 c# 中开发,所以我对 php 很陌生。我做错了吗?
感谢您的宝贵时间!
编辑1: 两个页面都在同一个域中。例如。 site.com/index.php -> site.com/index2.php
编辑2: cookie通过以下方式设置在一页中:
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();
}
在另一个页面中它无法访问,但在同一页面中它可以...
编辑3:
我尝试设置域并将path=<?php echo $_SERVER['HTTP_HOST']; ?> 添加到 javascript 代码中......仍然没有......
编辑4: 到目前为止我有..
document.cookie = cookieName+"="+escape(cookieValue)+"; expires="+expire.toGMTString()+"; path=/"+"; domain=.<?php echo $_SERVER['HTTP_HOST']; ?>";
我仍然只能从同一页面读取 cookie..
编辑5: 哦..我的..上帝...一直是一个错字...只需要删除“path=/“+”; dom ...”我为自己感到羞耻就在现在…… 同时我也重置了我的cookies,所以Jared现在很遗憾我不能接受你的帖子作为anwser ... 我给我的名字带来了耻辱!!!....
【问题讨论】:
-
您记得设置
Expires值吗? -
@Andrej - 看我的回答;你真的不需要推出自己的功能,使用 QuirksMode 功能(我的域添加)。这就是你所需要的。 :)
-
@Andrej - 另外,您使用的路径不正确;这与您的域相关,您需要一个带通配符的域(在 cookie 的情况下)来选择所有子域。所以
[other cookie stuff]; path=/; domain=.<?php echo $_SERVER['HTTP_HOST']; ?>. -
我刚试了..对我不起作用..你试过了吗?
-
@Andrej - 为什么你有 path=/"+"; ? “+”是干什么用的?
标签: php javascript cookies