# 帝国CMS如何设置cookie子域名共享

*Published:* 2023-11-18
*Author:* 客服001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2023年11月18日，已超过 180天没有更新



说一下帝国cms之间的解决方式，目前我们在测试时使用的是local.a.com和local2.a.com这两个网址。要实现local.a.com登录之后local2.a.com网站上也同时登录。减少用户的二次操作。

这里我们说一下cookie的设置。PHP中设置cookie参数使用函数setcookie来操作。

```
setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )
```

参数解读

1、name：Cookie 名称

2、value：Cookie 值。 这个值储存于用户的电脑里，请勿储存敏感信息。 比如 name 是 'cookiename'， 可通过 $\_COOKIE\['cookiename'\] 获取它的值。

3、expire：Cookie 的过期时间。 这是个 Unix 时间戳，即 Unix 纪元以来（格林威治时间 1970 年 1 月 1 日 00:00:00）的秒数。 也就是说，基本可以用 time() 函数的结果加上希望过期的秒数。 或者也可以用 mktime()。 time()+60\*60\*24\*30 就是设置 Cookie 30 天后过期。 如果设置成零，或者忽略参数， Cookie 会在会话结束时过期（也就是关掉浏览器时）。

Note:你可能注意到了，expire 使用 Unix 时间戳而非 Wdy, DD-Mon-YYYY HH:MM:SS GMT 这样的日期格式，是因为 PHP 内部作了转换。

4、path：Cookie 有效的服务器路径。 设置成 '/' 时，Cookie 对整个域名 domain 有效。 如果设置成 '/foo/'， Cookie 仅仅对 domain 中 /foo/ 目录及其子目录有效（比如 /foo/bar/）。 默认值是设置 Cookie 时的当前目录。

5、domain：Cookie 的有效域名/子域名。 设置成子域名（例如 'www.example.com'），会使 Cookie 对这个子域名和它的三级域名有效（例如 w2.www.example.com）。 要让 Cookie 对整个域名有效（包括它的全部子域名），只要设置成域名就可以了（这个例子里是 'example.com'）。

旧版浏览器仍然在使用废弃的 » RFC 2109， 需要一个前置的点 . 来匹配所有子域名。

6、secure：设置这个 Cookie 是否仅仅通过安全的 HTTPS 连接传给客户端。 设置成 TRUE 时，只有安全连接存在时才会设置 Cookie。 如果是在服务器端处理这个需求，程序员需要仅仅在安全连接上发送此类 Cookie （通过 $\_SERVER\["HTTPS"\] 判断）。

7、httponly：设置成 TRUE，Cookie 仅可通过 HTTP 协议访问。 这意思就是 Cookie 无法通过类似 JavaScript 这样的脚本语言访问。 要有效减少 XSS 攻击时的身份窃取行为，可建议用此设置（虽然不是所有浏览器都支持），不过这个说法经常有争议。 PHP 5.2.0 中添加。 TRUE 或 FALSE返回值

如果在调用本函数以前就产生了输出，setcookie() 会调用失败并返回 FALSE。 如果 setcookie() 成功运行，返回 TRUE。当然，它的意思并非用户是否已接受 Cookie。

帝国cms设置的方法

首先登录帝国cms后台，点击系统设置-&gt;安全参数设置，进入参数设置页面。

将网站的跟域名填写到COOKIE作用域设定中就可以了。如下图所示：

[![](https://www.xarjtc.com/wp-content/uploads/2023/11/5rengvnc4v.png)](https://www.xarjtc.com/wp-content/uploads/2023/11/5rengvnc4v.png)

注意：设置后网站后台登录信息会失效，需要重新登录，并且前台存在缓存时间。并非立即生效。