1

在我使用此代码使我的会话变量在所有子域中可见之前,我有一个无 cookie 的子域(静态):

session_set_cookie_params(0,'/','.example.com');

显然,通过这样做,我失去了“静态”子域的无 cookie 特性。

我怎么能在所有子域中看到一个会话变量,除了静态变量?感谢您的帮助

4

2 回答 2

2

我遇到了与您类似的问题,我认为我的解决方案将帮助您解决无 cookie 的静态域。我在下面描述了我的问题和后续解决方案,希望您可以使用它来解决您的问题。

我想在 2 个子域上共享会话:

  • www.example.com
  • shop.example.com

但排除该会话,并使用它自己的会话

  • admin.example.com

要设置跨两个域使用的会话,如您所述,您必须设置 cookie 参数:

session_set_cookie_params(0,'/','.example.com');

但是,这将与 admin.example.com 会话的 cookie 冲突。

解决方案是在管理站点中设置会话名称,使其与其他站点中的会话名称不同。例如:

session_name("AdminPHPSESSID");

有关详细信息,请参阅http://www.php.net/session_name

于 2013-11-25T13:41:11.493 回答
1

你能在 php.ini 文件中设置吗

cookie 对其有效的域。

session.cookie_domain = "domain"

或者

ini_set('session.cookie_domain', '.example.com');
于 2013-09-24T05:18:24.460 回答