我有这个问题:我有两个网站,例如SITEA和SITE B
来自SITEA.COM,用户进入此页面(SITEA.COM/gopage) 具有以下代码:
session_start();
$_SESSION['example'] = "example";
header("Location: SITEB.COM");
在SITEB.com,我有
<script type="text/javascript" src="SITEA.COM/include/script.js.php"></script>
在script.js.php中(由SITEB.COM调用,但托管在SITEA.COM上)我有
<?php
header("Content-Type: text/javascript");
session_start();
... php code that generates a dynamic javascript code
问题是我最后一页的php代码无法读取$ _SESSION ['example'],尽管它们都在SITEA.COM上
如果从不同的域调用它们,$ _SESSION不起作用吗?
答案 0 :(得分:1)
if they are recalled from different domains the $_SESSION doesnt work?
事实上。这是设计的。会话绑定到一个Web域。否则,市场营销人员和类似的人将能够在您旅行期间跟踪您的会话。你只需要放弃你现在正在采取的路线:它将无法工作。
常用的替代方法是在将用户重定向到其他网站时构建查询字符串。在您的代码中,您可以将其更改为:
session_start();
$_SESSION['example'] = "example";
header("Location: SITEB.COM/?example=" . $_SESSION['example']);
然后,在另一个网站上,您可以检查$ _GET ['example']并重新创建会话,如下所示:
session_start();
$_SESSION['example'] = $_GET['example']
这不是一个完全透明的解决方案,但它非常接近。
答案 1 :(得分:0)
如果从不同的地方召回他们 域名$ _SESSION不起作用?
正确。