0

我在亚马逊 Web 服务器 EC2 实例上的 ISPConfig 中设置了 2 个域/站点,

我有一个名为app.example.com的域,另一个是https://www.example.com 两个域都在 ISpConfig3 中设置。所以两者都有单独的 webroot 和代码文件。我在 app.example.com 上设置了一些会话变量,而在https://www.example.com我只有静态内容。但在某些情况下,我需要从 app.example.com 访问会话变量到我的顶级域https://www.example.com

我试过在http://app.example.com上设置

ini_set('session.cookie_domain', '.example.com' );

session_start();

$_SESSION['user_name']= "my_session";

然后$_SESSION['user_name']访问https://www.example.com

print_r($_SESSION['user_name']);

但似乎没有任何工作,我怎样才能让它工作?

4

2 回答 2

1

我认为@Alan Gularte 的第一条评论回复得很好。如果它不起作用,您可以考虑自己编写一个 cookie 来来回传递信息。

setcookie ("PassMySessionName", $_SESSION['user_name'], time() - 3600, "/", "example.com");

将 cookie 域设置为“example.com”将使其在 www 上都可用。和应用程序。

另一方面,您会在 $_COOKIE 数组中找到它。

$PassedUserName=$_COOKIE["PassMySessionName"];

如果您需要在不启用 cookie 的情况下全部工作,它会变得更加复杂,因为 $_SESSION 会透明地将参数附加到您的 url。在这种情况下(如果您从一个站点链接到另一个站点),您可以手动将它们添加到 url。

于 2012-12-07T12:04:34.910 回答
0

我想稍微修正一下

坏的:setcookie ("PassMySessionName", $_SESSION['user_name'], time() - 3600, "/", "example.com");

正确的:setcookie ("PassMySessionName", $_SESSION['user_name'], time() + 3600, "/", "example.com");

于 2014-12-16T11:58:01.160 回答