我有 2 个不同的域,我们称它们为 www.foo.com 和 bar.foo.com。第一个是用 CI 构建的,第二个是用 Symfony 构建的。我想分享我的 session ,所以如果我登录其中一个,我就可以访问另一个。我使用 $_SESSION["session_name"] = "value";
设置我的 session 数据。
如何使 session 数据可从其他域读取?
感谢您的帮助。
最佳答案
考虑到您的原始问题以及您在原始问题的评论中对 Logan 和我自己的回答,我理解:
1 - 您想在域及其子域之间传递 session 变量;和
2 - CI 和 Symfony 在您有机会执行 ini_set 命令之前加载 session 。
我相信你有两个选择:
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"
如果这能解决问题,请告诉我们。
祝你好运!
关于php - 跨多个域共享 php Session ($_SESSION),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7328225/