无法在子域和主域之间共享 PHP 个会话

Can't share PHP sessions between subdomain and main

我想在子域上创建一个会话,然后从我的主域访问它。我已经阅读了很多关于同一问题的帖子,但是 none 的答案对我有用。

我有一个来自 Dreamhost 的 VPS,我已将以下行放入两个域的 phprc(phprc 添加到 php.ini,dreamhost编辑方式 php.ini) session.cookie_domain = ".MAINDOMAIN.com" 其中 .MAINDOMAIN.com 引用我的域名。这是这里的工作解决方案:Sharing SESSION Variables Between Multiple Subdomains

然后我制作了一个 php 文件,我在 login.DOMAIN.com 和 DOMAIN.com

上调用 test.php

在 login.DOMAIN.com/test.php 我有以下代码:

session_start();
$_SESSION['test'] = "Works";
print_r($_SESSION);

我导航到文件时的输出:

Array ( [test] => Works )

访问该页面后,我转到 DOMAIN。com/test。php 代码为:

session_start();
print_r($_SESSION);

输出为:

Array ( )

我见过这样的其他线程:Allow php sessions to carry over to subdomains 有 4 个不同的选项来设置 php.ini 行(直接在 php.ini、.htaccess、脚本中,最后php-fpm 池配置),除了最后一个 php-fpm 池配置

之外,我已经尝试了所有方法

我也尝试在 php 文件之上设置这一行,在 session_start:

之前
session_set_cookie_params(0,"/",".MAINDOMAIN.com",FALSE,FALSE);

最重要的是:

session_name('mysession');

但没有任何效果

我还检查了 HTTP Header Live for FF wich 域,这里设置了 cookie 作为答案:Why can't I pass user sessions between subdomains? 并且 Set-Cookie 的字符串是:

Set-Cookie: PHPSESSID=9Q%2Cfrhr747fferf4700; path=/

没有提到什么域名?我究竟做错了什么?有什么想法吗?

也许这更像是一种解决方法,但是...

如果您不传递任何私人信息,您可以使用 $_GET 将信息从子域传递到域,然后使用域上的页面 (getsession.php) 将 $_GET 转换为 $_SESSION并重定向回域的索引以从 url.

中删除 $_GET

这是对 Dremhost 托管 VPS 的限制,不允许在虚拟主机(子域)之间共享 php 会话。我已切换到另一家供应商,一切正常