覆盖cookie失败PHP& ASP跨子域

时间:2010-07-19 07:42:15

标签: php cookies asp-classic

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

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

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

但仍然没有效果,任何想法?非常感谢。

2 个答案:

答案 0 :(得分: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");

注意域名部分(没有点),希望这有助于其他人

答案 1 :(得分:0)

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

我不知道你有多依赖Javascript,但你可以用它来设置cookie值(echo-ing“document.cookie =”=; expires =; path =“;”)。

它很脏但至少会有一个共同的分配器需要担心;不是两个......