【问题标题】:How to share cookie on 2 sub domains?如何在 2 个子域上共享 cookie?
【发布时间】:2016-03-01 17:32:20
【问题描述】:

当我的移动网站在一个子域上运行时,我想在 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); 

我如何在 2 个域之间共享此 cookie 以使客户端在两个站点上都登录?

【问题讨论】:

    标签: php session cookies


    【解决方案1】:

    这是你的意思吗?

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

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

    【讨论】:

      【解决方案2】:

      您不必明确定义子域:

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

      将 cookie 放在 root 中,它可以在任何地方访问。

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

      【讨论】:

        【解决方案3】:

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

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

        您不能为两个不同的子域使用一个 cookie,您可以在整个域上启用它,或者您可以有多个 cookie,每个 cookie子域。

        在代码方面你必须改变

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

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

        【讨论】:

          猜你喜欢
          • 2021-10-05
          • 1970-01-01
          • 2021-03-23
          • 2011-04-05
          • 1970-01-01
          • 2013-03-19
          • 1970-01-01
          • 2013-08-31
          相关资源
          最近更新 更多