【问题标题】:How to: persistent PHP session across subdomains [duplicate]如何:跨子域的持久 PHP 会话 [重复]
【发布时间】:2012-12-14 06:10:46
【问题描述】:

可能重复:
PHP: Cookie domain / subdomain control
Allow php sessions to carry over to subdomains

重要信息

  • 该网站由数百个子域“example.domain.com”组成
  • 登录我网站的用户拥有“记住我”功能
  • 用户可以从任何子域登录(并且他们必须能够通过该会话浏览任何子域)

问题

  • 目前,当用户通过一个子域连接时,其他子域无法识别他们的会话/cookie(无论他们是否选择了 cookie 选项)。

问题

  • 必须做些什么才能使用户会话在 domain.com 的所有子域中持久存在?换句话说,我不希望用户必须登录每个子域。

【问题讨论】:

  • herehere
  • @Nile 我已经尝试过了,但所有这些解决方案都不适合我。至于 htaccess 解决方案,我什至从服务器收到 505 错误。
  • 对于不工作的解决方案:与 Wireshark 检查实际通过网络发送的内容。此外,检查代码中的所有 session_ 函数和代码中的所有 ini_set 调用是否覆盖了 cookie 域。
  • 你试过在session_set_cookie_params之前设置session_name吗?我有那个问题。您还应该在开始会话之前使用这些功能。

标签: php session cookies


【解决方案1】:

更改 php.ini:

session.cookie_domain = domain.com

那么它将对所有子域有效。 但这取决于所有子域都由同一服务器提供。

如果是多台服务器,那么您必须通过NFS 共享会话文件夹。 或者您只为自动登录添加另一个 cookie,并为每个子域设置一个单独的会话。

http://en.php.net/manual/en/function.setcookie.php#domain

但您的自动登录 cookie 考虑到了安全性。

【讨论】:

    猜你喜欢
    • 2015-12-06
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 2011-11-30
    • 1970-01-01
    • 2014-08-03
    相关资源
    最近更新 更多