访问域/子域之间的会话.本地examplep安装


Accessing session between domain/subdomain. Local xampp installation

提前感谢。

我在本地安装了Xampp。我的网站设置如下。我有我的主域,即"域"安装目录: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域,行为没有改变。

如有任何协助,不胜感激。

您需要使会话cookie对您的子域可见(因此,在、您的域和子域上调用session_set_cookie):

session_set_cookie_params (0, '/', '.domain.com');
session_name('mysessionname');
session_start();

EDIT(来自评论,解决了问题)

域主机名应该由两部分组成(即使是本地开发),例如domain.local而不是域

当设置COOKIES时,有一个参数允许您指定PATH和DOMAIN,如果您将DOMAIN设置为"DOMAIN.com"并将PATH设置为"/",这将使COOKIE在所有子域中可用,一些旧浏览器要求DOMAIN使用前导点(.)".DOMAIN.com"…

签出此页面上的params,session_set_cookie_params也有DOMAIN和PATH参数