【问题标题】:How do I maintain PHP sessions across multiple domains on the same server?如何在同一台服务器上跨多个域维护 PHP 会话?
【发布时间】:2010-09-19 15:07:29
【问题描述】:

我正在寻找一种在同一服务器上跨多个域维护 PHP 会话的方法。我将把我的网站与一个简单机器论坛集成,所以我需要使用基于 MySQL 的会话。谢谢!

【问题讨论】:

    标签: php mysql session


    【解决方案1】:

    根据您修改 PHP 变量的首选方法(Apache 的配置,.htaccess),将 session.cookie_domain 值更改为一致的值。

    我有多个子域,Apache 配置文件中的每个 VirtualHost 部分都包含以下行:

    php_value session.cookie_domain mydomain.com

    如果您在 .htaccess 文件中进行更改,语法应该类似。

    更新了 bobert5064 的评论:

    对于多个域(即domain1.com、domain2.org),我认为只需要选择一个通用域名(即domain1.com)即可。我从来没有尝试过,所以我无法验证它是否有效,但逻辑似乎是准确的。

    http://us.php.net/manual/en/function.session-set-cookie-params.php 中描述的PHP 中还有一种设置变量方向的方法。该文档没有提及在不同域上设置 cookie 的能力或不能力。

    【讨论】:

    • 问题是我使用了多个不同的 URL,而不是子域。即 domain1.com domain2.com
    【解决方案2】:

    如果一个站点要转发或链接到第二个站点,它可以在链接的 href 中包含会话 ID,或者在表单中作为 输入。类似于 George 的 img 标记 方法,但会话仅在需要时才会移动。

    哪个最好取决于您网站的使用模式。

    【讨论】:

      猜你喜欢
      • 2015-12-23
      • 2023-03-14
      • 2014-07-11
      • 2012-01-20
      • 2015-02-07
      • 2015-11-22
      • 2020-03-14
      • 2016-01-31
      相关资源
      最近更新 更多