在我使用此代码使我的会话变量在所有子域中可见之前,我有一个无 cookie 的子域(静态):
session_set_cookie_params(0,'/','.example.com');
显然,通过这样做,我失去了“静态”子域的无 cookie 特性。
我怎么能在所有子域中看到一个会话变量,除了静态变量?感谢您的帮助
在我使用此代码使我的会话变量在所有子域中可见之前,我有一个无 cookie 的子域(静态):
session_set_cookie_params(0,'/','.example.com');
显然,通过这样做,我失去了“静态”子域的无 cookie 特性。
我怎么能在所有子域中看到一个会话变量,除了静态变量?感谢您的帮助
我遇到了与您类似的问题,我认为我的解决方案将帮助您解决无 cookie 的静态域。我在下面描述了我的问题和后续解决方案,希望您可以使用它来解决您的问题。
我想在 2 个子域上共享会话:
但排除该会话,并使用它自己的会话
要设置跨两个域使用的会话,如您所述,您必须设置 cookie 参数:
session_set_cookie_params(0,'/','.example.com');
但是,这将与 admin.example.com 会话的 cookie 冲突。
解决方案是在管理站点中设置会话名称,使其与其他站点中的会话名称不同。例如:
session_name("AdminPHPSESSID");
有关详细信息,请参阅http://www.php.net/session_name。
你能在 php.ini 文件中设置吗
cookie 对其有效的域。
session.cookie_domain = "domain"
或者
ini_set('session.cookie_domain', '.example.com');