覆盖 cookie 失败 PHP & ASP 跨子域

Posted

技术标签:

【中文标题】覆盖 cookie 失败 PHP & ASP 跨子域【英文标题】:Overwrite cookie failed PHP & ASP cross subdomain 【发布时间】:2010-07-19 07:42:14 【问题描述】:

我在覆盖跨子域的 cookie 值时遇到问题,在 ASP 中运行的网站位于 www.domain.com 和在 php 中运行且 m.domain.com 共享相同 cookie 的移动站点

通过 asp 在 www.domain.com 中创建的 Cookie 如下:

Response.Cookies("cookie_name")="value1"
Response.Cookies("cookie_name").Expires=DateAdd("m", 1, Date())
Response.Cookies("cookie_name").Domain = ".domain.com"
Response.Cookies("cookie_name").Path  = "/"
Response.Cookies("cookie_name").Secure = false

当我尝试覆盖 PHP (m.domain.com) 中的值时,如下所示:

setcookie("cookie_name",'value2',time()+60*60*24*30, "/", ".domain.com",false);

执行返回 true 但是当我检查 cookie 时值没有改变仍然是“value1”

也曾尝试通过header设置

header("Set-Cookie: cookie_name=value2; path=/; domain=.domain.com; expires=".gmstrftime("%A, %d-%b-%Y %H:%M:%S GMT",time()+60*60*24*30));

但仍然没有效果,有什么想法吗?非常感谢。

【问题讨论】:

【参考方案1】:

终于成功了

header("Set-Cookie: cookie_name=value2; expires=".gmstrftime("%A, %d-%b-%Y %H:%M:%S GMT",time()+60*60*24*30)."; path=/; domain=domain.com");

注意域部分(无点),希望这对其他人有帮助

【讨论】:

【参考方案2】:

PHP 和 javascript 有时也不能一起工作,所以我意识到了这个问题。

我不知道您对 Javascript 的依赖程度如何,但您可以使用它来设置 cookie 值(echo-ing "document.cookie = "=;expires=;path="; ")。

它很脏,但至少要担心一个共同的分隔线;不是两个.....

【讨论】:

以上是关于覆盖 cookie 失败 PHP & ASP 跨子域的主要内容,如果未能解决你的问题,请参考以下文章

PHP走进 PHP 第七课 Cookie & Session

PHP走进 PHP 第七课 Cookie & Session

cookie&&session再理解笔记

js获取cookie 和 模仿php的&_GET方法

没有 Cookie 的 PHP 会话 | Codeigniter [关闭]

如何从php中的asp.net发送的cookie中检索特定值