每个域名的新会话


New session for every domain name

我正在运行Ubuntu/nginx和php-fpm。当我打开我的网站http://www.mydomain.com时,我必须登录并通过PHP创建会话。当我登录到http://mydomain.com时,我必须再次登录,并且正在创建另一个会话。

如何防止PHP创建新会话并坚持使用一个会话?或者这是一个web服务器问题?

这是因为您的会话基于cookie,而cookie是特定于域的。从技术上讲,www.domain.comdomain.com的子域,尽管它很少被这样对待,并且浏览器将表现得好像它是一个完全不同的服务器。您可以通过适当地将会话id作为GET(或POST)参数传递来解决这个问题。

请参阅本页或PHP手册,了解如何执行此操作。所有你真正需要做的是包括常数SID在你所有的链接等-这是定义时,你调用session_start(),是一个字符串在URL参数的格式。

使用session_set_cookie_params将域设置为.mydomain.com。此外,session_set_cookie_params需要在每次session_start

之前调用

您需要指定cookie域以确保cookie对www和非www都有效http://php.net/manual/en/function.session-set-cookie-params.php