1

我有一个网站 www.example.com 当用户在访问http://example.com时登录,然后当他浏览http://www.example.com时,他显示为未登录。我认为原因是当他访问http://example时设置的 cookie 在同一用户访问http://www.example.com时没有发送到服务器

如果用户登录任何一个站点,我希望用户在两个站点中都显示为已登录。我也有一个移动网站http://m.example.com。我也希望用户在此处显示为已登录。

我正在为我的 Web 应用程序使用 PHP 和 Zend Framework。

4

2 回答 2

5

尝试将 cookie 域(set_cookie 的第 5 个参数)设置为“.example.com”。

http://php.net/set_cookie

cookie 可用的域。要使 cookie 在 example.com 的所有子域(包括 example.com 本身)上可用,您需要将其设置为 '.example.com'。虽然有些浏览器会接受不带首字母 . 的 cookie,但 » RFC 2109 要求包含它。将域设置为“www.example.com”或“.www.example.com”将使 cookie 仅在 www 子域中可用。

希望这可以帮助!

于 2011-01-13T05:43:12.883 回答
2

在 php.ini 中设置

 session.cookie_domain = .example.com 

或者

ini_set("session.cookie_domain", ".example.com"); 

这也将在子域中进行会话。

于 2011-01-13T05:43:31.617 回答