我有2个不同的域,我们称它们为www.foo.com和bar.foo.com.第一个是使用CI构建的,第二个是使用Symfony构建的.我想共享我的会话,因此,如果我登录其中一个,则可以访问另一个会话.我使用$_SESSION [“ session_name”] =“ value”;设置会话数据.
如何使会话数据可从其他域读取?
谢谢你的帮助.
解决方法:
在我理解的原始问题的评论中考虑您的原始问题以及您对Logan和我本人的回答:
1-您要在域及其子域之间传递会话变量;和
2-CI和Symfony在有机会执行ini_set命令之前加载会话.
我相信您有两种选择:
1-在php.ini文件中包含php配置命令
session.cookie_domain=".foo.com"
如果您尝试将其包含在.htaccess中,那么如果您将php作为CGI模块运行,它将无法正常工作,这似乎在共享托管服务中相当普遍.
2-您可以将文件添加到站点中的所有php脚本.这些将放在您的站点运行的每个PHP脚本的顶部,甚至包括CI和Symfony中的脚本.例如:
phpprepend.php文件
<?php
ini_set('session.cookie_domain', '.foo.com');
?>
在php.ini文件中包含以下行:
auto_prepend_file = "/path/to/file/phpprepend.php"
请让我们知道是否可以解决问题.
祝好运!