访问域/子域之间的会话。本地xampp安装

时间:2012-01-11 11:01:29

标签: php session xampp

提前致谢。

我有一个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域,行为没有变化。

非常感谢任何帮助。

2 个答案:

答案 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参数