【问题标题】:Can you set PHP Session cross domain?可以设置 PHP Session 跨域吗?
【发布时间】:2014-06-30 13:36:34
【问题描述】:

我在external-site.com 上有一个这样的 php 文件:

<?php
session_start();
$_SESSION['something'] = "whatever"; 
?>

我将这个 PHP 文件包含在另一个网站 example.com 上,如下所示:

<script src="http://external-site.com/session.js.php"></script>

这行得通吗?我确实想使用example.com 本身的会话。我只需要external-site.com。所以我确实想将会话转移到另一个域或类似的东西。

如果是这样,它在哪个浏览器中工作,在哪个浏览器中不工作?

【问题讨论】:

  • 你只能传递 $_SESSION 所持有的文本表示,你不能像这样将确切的会话传递给另一个服务器。
  • 我不想通过会话。我只想在external-site.com 上使用它。我设置会话的 php 文件也在external-site.com 上。但是我像上面提到的那样从example.com 调用文件。

标签: php session cross-domain session-variables


【解决方案1】:

会话在带有会话 ID 的 cookie 中标识。由于您使用 http:// 调用加载文件,因此它应该创建会话并添加带有来自 external-side.com 的会话 ID 的 cookie。

但是,无论使用哪种浏览器,您都可能会遇到使用 3rd 方 cookie 权限的问题。如果您的用户启用了 3rd 方 cookie,那么您很好。如果他们禁用了它们,则没有 cookie,因此没有会​​话。

【讨论】:

    【解决方案2】:

    您不能使用从一个站点到另一个站点的会话。每个站点都有自己的会话 ID,保存在客户的电脑上。

    【讨论】:

      猜你喜欢
      • 2010-10-22
      • 1970-01-01
      • 2012-12-18
      • 1970-01-01
      • 2012-08-30
      • 2014-03-03
      • 2017-03-06
      • 1970-01-01
      • 2020-04-24
      相关资源
      最近更新 更多