在2个子域之间共享$ _SESSION数据

问题描述 投票:0回答:1

我正在努力将$ _SESSION数据从一个子域传递到另一个子域。

我看过这两个问题和答案:

而且它们都有效地提出了相同的解决方案(按照优先顺序):

  • php.ini中,将session.cookie_domain设置为根域。
  • .htaccess中使用php_value有效地执行上述操作
  • 在每页上使用ini_set()执行上述操作。

通过cPanel,我已经使用MultiPHP INI编辑器实现了第一个。我在此处添加的设置如下:

session.cookie_domain ".creativecasting.tv"

我已经更新了2个子域中的.htaccess文件,并向每个子域添加了以下行:

php_value session.cookie_domain ".creativecasting.tv"

并且在两个子域的每个页面中,我都添加了以下PHP代码:

ini_set('session.cookie_domain', '.creativecasting.tv');

因此,我觉得我已经遵循了所有建议的3个解决方案来在子域之间共享$ _SESSION数据,但是未共享$ _SESSION数据。


我已经设置了2个文件对此进行测试。

这里是第一个文件的内容,可以在这里找到:http://login.creativecasting.tv/session_test.php

echo '<h4>TESTING SESSION DATA (sending)</h4>';
trace(ini_get('session.cookie_domain'), 'session.cookie_domain');
trace('setting session data, like so: $_SESSION[\'test\'] = \'testing 123\'', '', false);
$_SESSION['test'] = 'testing 123';
trace($_SESSION, '$_SESSION');
echo '<p><a href="http://ad.creativecasting.tv/session_test2.php">go to receiver subdomain</a></p>';

这里是第二个文件的内容,可以在这里找到:http://ad.creativecasting.tv/session_test2.php

echo '<h4>TESTING SESSION DATA (receiving)</h4>';
trace(ini_get('session.cookie_domain'), 'session.cookie_domain');
trace($_SESSION, '$_SESSION');
echo '<p><a href="http://login.creativecasting.tv/session_test.php">go to sender subdomain</a></p>';

FYI,trace()实际上只是var_dump()的包装器]]

如您所见,第二个文件没有从第一个文件中提取$_SESSION数据。


我如何在这两个域之间共享$ _SESSION数据?我在这里缺少什么吗?

我正在努力将$ _SESSION数据从一个子域传递到另一个子域。我查看了以下两个问题和答案:在多个子域之间共享SESSION变量https://serverfault.com / ...

php .htaccess session subdomain
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.