【发布时间】:2023-03-09 04:13:01
【问题描述】:
我想在子域上进行会话,然后从我的主域访问它。我已经阅读了很多关于同一问题的主题,但没有一个答案对我有用。
我有一个来自 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);
当我导航到文件时的输出:
数组([测试] => 有效)
访问该页面后,我然后转到代码所在的 DOMAIN.com/test.php:
session_start();
print_r($_SESSION);
输出是:
数组( )
我见过类似这样的其他线程:Allow php sessions to carry over to subdomains 有 4 个不同的选项来设置 php.ini 行(直接在 php.ini、.htaccess、脚本中,最后是 php-fpm 池配置)和我除了最后一个使用 php-fpm 池配置之外,所有这些都尝试过
我还尝试在 session_start 之前将这一行设置在我的 php 文件之上:
session_set_cookie_params(0,"/",".MAINDOMAIN.com",FALSE,FALSE);
除此之外:
session_name('mysession');
但没有任何效果
我还检查了 HTTP Header Live for FF 的 cookie 设置的域作为这里的答案:Why can't I pass user sessions between subdomains? 和 Set-Cookie 的字符串是:
设置 Cookie:PHPSESSID=9Q%2Cfrhr747fferf4700;路径=/
没有提到什么域?我究竟做错了什么?有什么想法吗?
【问题讨论】:
标签: php session cookies subdomain session-cookies