如何在2个子域上共享cookie?

时间:2016-03-01 09:23:18

标签: php session cookies

我想在2个域中共享Cookie,因为我的移动网站在子域上运行。

生产服务器:

www.server.com
m.server.com

开发服务器:

rabbit.server
rabbit.m.server

我设置cookie的PHP代码如下所示:

if ($settings['development'] == true) // intranet does not work with subdomains :-(
    setcookie($cookiename,$sessid, $expires,'/','',0);  
else // production
    setcookie($cookiename,$sessid, $expires,'/', $subdomain.'.'.$domain['name'],0); 

我如何在两个网域上共享此Cookie,以便客户端在两个网站上都可以使用?

3 个答案:

答案 0 :(得分:0)

这是你的意思吗?

“要使cookie可用于整个域(包括其中的所有子域),只需将值设置为域名(在本例中为”example.com“)。”

http://php.net/manual/en/function.setcookie.php

答案 1 :(得分:0)

您不必明确定义子域:

setcookie('cookiename','cookievalue',time()+(3600*24),'/');

将cookie放在root中,并且每个地方都可以访问它。

所以基本上'/'定义可以在所有文件夹中访问它。

答案 2 :(得分:0)

嗯,有两种方法可以做到这一点。

您可以在整个域上设置cookie,这样您就可以从任何子域访问它,或者如果您只想允许某些子域,那么您将不得不创建两个cookie,每个cookie一个。

您不能为两个不同的子域 创建一个Cookie,您可以在整个域中启用它,或者您可以拥有多个Cookie,每个一个子域。

代码方面你必须改变

setcookie($cookiename,$sessid, $expires,'/', $subdomain.'.'.$domain['name'],0);

setcookie($cookiename,$sessid, $expires,'/','.'.$domain['name'],0);