我正在运行Ubuntu / nginx和php-fpm。当我打开我的网站http://www.mydomain.com时,我必须登录并且PHP正在创建会话。当我登录http://mydomain.com时,我必须再次登录,并且正在创建另一个会话。
如何阻止PHP创建新会话并坚持使用?或者这是一个Web服务器问题?
答案 0 :(得分:1)
这是因为您的会话基于Cookie,而Cookie是特定于域的。 www.domain.com
在技术上是domain.com
的子域,虽然它很少被视为这样,并且浏览器将表现为完全不同的服务器。您可以根据需要将会话ID作为GET(或POST)参数传递来解决此问题。
有关如何操作的说明,请参阅this page或PHP手册。您真正需要做的就是在所有链接中包含常量SID
等 - 这是在您调用session_start()
时定义的,并且是一个URL参数格式的字符串。
答案 1 :(得分:1)
使用session_set_cookie_params并将域设置为.mydomain.com
。另外session_set_cookie_params需要在每个session_start
答案 2 :(得分:0)
您需要指定Cookie域,以确保该Cookie对www和非www http://php.net/manual/en/function.session-set-cookie-params.php
都有效