我正在运行Ubuntu/nginx和php-fpm。当我打开我的网站http://www.mydomain.com时,我必须登录并通过PHP创建会话。当我登录到http://mydomain.com时,我必须再次登录,并且正在创建另一个会话。
如何防止PHP创建新会话并坚持使用一个会话?或者这是一个web服务器问题?
这是因为您的会话基于cookie,而cookie是特定于域的。从技术上讲,www.domain.com
是domain.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