我有 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/