【问题标题】:use same php session on another website on link click在链接点击的另一个网站上使用相同的 php 会话
【发布时间】:2012-01-22 08:48:25
【问题描述】:

我有一个问题。假设我在网站 domain1.com 上,然后单击 domain1.com 上的链接将我带到 domain2.com。但我想使用与 domain2.com 上的 domain1.com 中的 session_start() 设置的 session_id() 相同的 session_id()。我如何在 PHP 中实现这一点?

谢谢。

【问题讨论】:

  • 您拥有这两个域?它们是否托管在同一台服务器上?
  • 我知道你想在这里做什么。只是域(HTTP_HOST)会有所不同,但服务器是相同的。还是真的有 2 个独立的网站?
  • 它们是两个独立的站点。我可以从 domain1.com 访问 domain2.com 中的某些信息,但它们是两个完全不同的网站。它们没有托管在同一台服务器上,是的,我拥有这两个域。

标签: php session cookies session-cookies


【解决方案1】:

也许您可以使用可以从两个站点访问的 MySql 数据库...

喜欢:

Table _sessions -> Fields('access_token','session_vars')

在 session_vars 中,您可以在每次网站加载时保存 $_SESSION。 access_token 应该是用户第一次访问网站时生成的唯一字符串。

这很危险!! 11 :-)

【讨论】:

    【解决方案2】:

    由于session_id() 本身不包含任何数据,因此需要考虑以下几点:

    • 如果会话设置在 cookie 中,则不能转移(除非转移到子域),请确保通过 GET 转移它
    • 为了使与 SESSION 关联的数据在服务器之间同步,您必须共享文件系统(例如通过GlusterFS),至少对于保存 SESSIONS 的路径(例如 /tmp/php)
    • 如果您将对象保存在 SESSION 中,请确保它们在两台服务器上都可用

    如果两个域都指向同一个服务器上的同一个文档根目录,你只需要注意第一点

    如果你只想使用session_id()而不是关联的数据,你可以设置id:session_id('yourSessionIdFromDomain1')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多