覆盖cookie失败的PHP&;ASP跨子域

覆盖cookie失败的PHP&;ASP跨子域,php,cookies,asp-classic,Php,Cookies,Asp Classic,我在跨子域覆盖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("c

我在跨子域覆盖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
setcookie("cookie_name",'value2',time()+60*60*24*30, "/", ".domain.com",false);
当我试图覆盖PHP(m.domain.com)中的值时,如下所示:

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
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));

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

PHP和JavaScript有时不能很好地协同工作,所以我意识到了这个问题

我不知道您在多大程度上依赖Javascript,但您可以使用它来设置cookie值(echo ing“document.cookie=“=;expires=;path=“;”)

这是肮脏的,但至少会有一个共同的分隔担心;不是两个….

最后我成功了

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");
请注意域部分(无点),希望这有助于其他人