提前致谢。
我有一个Xampp的本地安装。我的网站设置如下。我有我的主域名,即'domain'installatiopn目录:C:\xampp\htdocs\domain
在此我有一个子域设置,即'subdomain.domain
'安装目录:C:\xampp\htdocs\domain\subdomain
这样做的目的是在主域网站上进行单一登录,并在用户访问子域网站时能够访问相同的会话数据(因此,一旦用户登录,就不必重新对用户进行身份验证进入域门户网站)。
我在我的域index.php中创建会话,如下所示:
session_set_cookie_params(0, '/', '.3pccap');
session_name('mysessionname');
session_start();
子域名index.php
session_name('mysessionname');
session_start();
我添加了一个var_dump($_SESSION
);在每个index.php页面上确认可用的会话数据。一旦我登录到我的主域,会话就填充了用户数据。然后我导航到我的子域站点,该站点也运行会话变量的var_dump。变量显示为空数组。
我尝试在php.ini文件中设置会话cookie域,行为没有变化。
非常感谢任何帮助。
答案 0 :(得分:2)
您需要为子域显示会话Cookie(因此,在 ,您的域和子域名上调用session_set_cookie
):
session_set_cookie_params (0, '/', '.domain.com');
session_name('mysessionname');
session_start();
编辑(来自评论,解决了这个问题)
域名主机名应由两部分组成(即使是本地开发),例如: domain.local而不是域
答案 1 :(得分:0)
当设置COOKIES时,有一个参数允许您指定PATH和DOMAIN,如果您将DOMAIN设置为“domain.com”而PATH设置为“/”,这将使所有子域中的COOKIE可用,一些旧浏览器要求DOMAIN使用前导点(。)“。domain.com”...
Checkout the params on this page,session_set_cookie_params也有DOMAIN和PATH参数