2

某些托管服务提供商(如 HostGator)为帐户提供共享 SSL 证书。这意味着我的 HTTPS 链接与我的 HTTP 是不同的域。

即:网址类似于http://www.mydomain.comhttps://secure123.hostgator.com/~bill/

我正在尝试将用户登录到安全域,设置会话变量,然后重定向到主页。但是,这样做时,会话变量会丢失。

不安全的 Index.php:

<?php session_start(); 
echo $_SESSION['name'];
?>
<html><body>
<p><a href="https://secure123.hostgator.com/~bill/login.php">Login</a></p>
</body></html>

安全登录.php:

<?php session_start(); 
$_SESSION['name'] = "Bill";
header("location: http://www.mydomain.com/index.php")
?>

如何确保会话变量能够被 http 和 https 上的所有文件读取?

4

1 回答 1

2

您可以通过 GET 提供您的会话 ID。

header("location: http://www.mydomain.com/index.php?PHPSESSID=".session_id());

另一方面,您可以打开session.use_trans_sid

或使用函数session_id()设置会话 ID

手册:传递会话 ID

于 2013-07-03T00:14:01.370 回答