我试图在两个子域中共享会话变量的内容,但由于某种原因它无法正常工作。
sessionid 在两个子域上完全相同,但变量不可用。
我可以通过Cookie实现这一点,但这样做很有效,但宁可使用会话中的值。
以下是我为会话设置域名的方法:
谢谢, 斯科特
更新 抱歉应该说,我已经在使用以下内容:
ini_set('session.cookie_domain', substr($_SERVER['SERVER_NAME'],strpos($_SERVER['SERVER_NAME'],"."),100));
if(session_id ==''){session_start();}
答案 0 :(得分:3)
您正在寻找此功能:session_set_cookie_params()
。
假设您有两个域:
要在两个域之间共享会话数据,请在session_start()
之前调用以下函数:
session_set_cookie_params(0, '/', '.example.com');
(编辑:我确实忘记了示例代码中的一个点)
答案 1 :(得分:-1)
sessionid完全相同 两个子域名(..)
您确定sessionid的值(不是名称)是否相同?
我2年前需要类似的东西,但是我需要它来处理完全不同的虚拟主机(例如,example.com和something.else.net),所以我写了一个小脚本来确保用户得到相同的{ {1}}在不同的虚拟主机上。源代码可以在http://www.misc.lv/_downloads_file.php?id=18获得,但第58行有一个小错误 - 应该交换strpos()的参数(我太懒了,不能修复它并上传固定的脚本)。
基本要求/步骤是: