Can';t在子域和主域之间共享PHP会话
我想在子域上建立会话,然后从主域访问它。我读过很多关于同一个问题的帖子,但是没有一个答案对我有用 我有一个来自Dreamhost的VPS,我在两个域上的phprc中都坐了以下行(phprc被添加到php.ini,Dreamhost编辑php.ini的方式)session.cookie_domain=“.MAINDOMAIN.com”,其中.MAINDOMAIN.com引用我的域名。这就是这里的工作解决方案: 然后,我在login.DOMAIN.com和DOMAIN.com上创建了一个名为test.php的php文件 在login.DOMAIN.com/test.php上,我有以下代码:Can';t在子域和主域之间共享PHP会话,php,session,cookies,subdomain,session-cookies,Php,Session,Cookies,Subdomain,Session Cookies,我想在子域上建立会话,然后从主域访问它。我读过很多关于同一个问题的帖子,但是没有一个答案对我有用 我有一个来自Dreamhost的VPS,我在两个域上的phprc中都坐了以下行(phprc被添加到php.ini,Dreamhost编辑php.ini的方式)session.cookie_domain=“.MAINDOMAIN.com”,其中.MAINDOMAIN.com引用我的域名。这就是这里的工作解决方案: 然后,我在login.DOMAIN.com和DOMAIN.com上创建了一个名为test
session_start();
$_SESSION['test'] = "Works";
print_r($_SESSION);
导航到文件时的输出:
阵列([测试]=>工作)
访问该页面后,我进入DOMAIN.com/test.php,代码如下:
session_start();
print_r($_SESSION);
输出为:
数组()
我见过其他类似的线程:使用4个不同的选项设置php.ini行(直接在php.ini、in.htaccess、脚本中,最后是php fpm池配置),我尝试了所有线程,但最后一个使用php fpm池配置的线程除外
在会话开始之前,我还尝试在我的php文件上设置这一行:
session_set_cookie_params(0,"/",".MAINDOMAIN.com",FALSE,FALSE);
除此之外:
session_name('mysession');
但什么都不管用
我还使用HTTP Header Live for FF wich domain检查了cookie的设置,答案如下:设置cookie的字符串为:
设置Cookie:PHPSESSID=9Q%2Cfrhr747fferf4700;路径=/
没有提到什么域名?我做错了什么?有什么想法吗?也许这更像是一项工作,但是
如果您没有传递任何私有信息,您可以使用$\u-GET将信息从子域传递到域,然后使用域上的页面(getsession.php)将$\u-GET转到$\u会话,并重定向回域的索引以从url中删除$\u-GET。这是对Dremhost管理的VPS的限制,不允许在虚拟主机(子域)之间共享php会话。我已切换到其他提供商,一切正常这将是登录用户的会话,因此非常隐私,不幸的是:(