Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在访问域/子域之间的会话。本地xampp安装_Php_Session_Xampp - Fatal编程技术网

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

Php 正在访问域/子域之间的会话。本地xampp安装,php,session,xampp,Php,Session,Xampp,提前谢谢 我在本地安装了Xampp。我的网站设置如下。我有我的主域,即“域”安装目录:C:\xampp\htdocs\domain 其中我有一个子域设置,即“subdomain.domain”安装目录:C:\xampp\htdocs\domain\subdomain 这样做的目的是在主域站点上进行单点登录,并在用户访问子域站点时能够访问相同的会话数据(因此,在用户登录到域门户站点后不必重新验证用户) 我在我的domain index.php中创建会话,如下所示: session_set_cook

提前谢谢

我在本地安装了Xampp。我的网站设置如下。我有我的主域,即“域”安装目录:
C:\xampp\htdocs\domain
其中我有一个子域设置,即“subdomain.domain”安装目录:
C:\xampp\htdocs\domain\subdomain

这样做的目的是在主域站点上进行单点登录,并在用户访问子域站点时能够访问相同的会话数据(因此,在用户登录到域门户站点后不必重新验证用户)

我在我的domain index.php中创建会话,如下所示:

session_set_cookie_params(0, '/', '.3pccap'); 
session_name('mysessionname');
session_start();
子域索引.php

session_name('mysessionname');
session_start(); 
我添加了一个var_转储(
$\u会话
);在每个index.php页面上确认可用的会话数据。一旦我登录到我的主域,会话就会被用户数据填充。然后我导航到我的子域站点,它也运行会话变量的var_转储。变量显示为空数组

我尝试在php.ini文件中设置会话cookie域,但行为没有改变


非常感谢您的帮助

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


,session_set_cookie_参数还具有域和路径参数

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


编辑(来自解决问题的注释)


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

Set Cookie指令是什么样子的?是的,我在以下目录中进行了检查:C:\xampp\tmp,登录域站点时会创建一个新的Cookie。当我访问子域站点时,还会创建一个单独的cookie。我不想发生这种事。我对cookie的了解很差,所以我的php.ini中有点丢失了.Set-cookie指令?不,我是指php在本例中生成的实际值。我修改了我的页面,以便域和子域调用会话_Set_cookie_参数(0,“/”,“.domain.com”);会话名称(“mysessionname”);会话_start();设置会话时。我在我的子域上仍收到一个空会话数组。它们是否都将会话数据保存到同一路径(例如,检查
phpinfo()
)?phpinfo()session.save\u path=C:\xampp\tmp用于我的域和子域。您实际使用的域名是什么?域主机名应该由两部分组成(即使是本地开发),例如
域。本地
而不是
啊,好的,我的域如上所述。因此,我假设原始域是一个单词,它被视为顶级域(我读过它不会工作)?我已经将其修改为domain.com和subdomain.domain.com,cookie在这两个域上正确显示相同的会话。非常感谢。
session_set_cookie_params (0, '/', '.domain.com');
session_name('mysessionname');
session_start();