【问题标题】:Starting a php $_SESSION on root domain (www) and sharing the session across subdomains在根域 (www) 上启动 php $_SESSION 并跨子域共享会话
【发布时间】:2012-09-15 05:59:22
【问题描述】:

我正在尝试设置我的 PHP $_SESSION 并让它在所有子域中都可用。除非尝试从根域 (www) 检索会话,否则此方法工作正常。

如果我在 www 上启动会话,那么它将与任何子域共享。如果我在子域上启动会话,它将不会www 共享。

我将 session_set_cookie_params (index.php) 和 session.cookie_domain (php.ini) 正确设置为 .domain.com

当我在 www 上回显 $_COOKIE["PHPSESSID"] 时,我得到的字符串与所有子域上使用的字符串不同。所有子域都具有相同的 $_COOKIE["PHPSESSID"] 值。

我希望能够在 www 上发起会话,并能够在所有子域上使用该会话。有什么解决办法吗?

感谢您的任何帮助。

【问题讨论】:

  • domain 中有 domain 参数 - 你也明确设置了吗?
  • 请在问题中添加具体的 php.ini 设置以及session_set_cookie_params 的调用和数据。那个“代码”不见了。另外我认为这个问题之前已经问过,可能是:Subdomain Session Issue

标签: php session cookies subdomain wildcard-subdomain


【解决方案1】:

尝试为会话设置名称

session_name("域");

在设置会话 cookie 参数之前。

session_name("domain");
session_set_cookie_params(0, '/', '.domain.com');
session_start();

【讨论】:

  • 为什么将会话命名为“域”?
  • 你为什么建议尝试?尝试这样做的理由是什么?
  • @Gumbo:你可以给它起任何名字。
  • @hakra:因为几个月前我遇到了类似的问题。
  • 做到了!感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 1970-01-01
  • 2016-08-01
  • 2013-12-04
  • 2011-02-26
相关资源
最近更新 更多