Php 在HTTP和HTTPS之间传递会话变量
某些主机提供商(如HostGator)为帐户提供共享SSL证书。这意味着我的HTTPS链接与我的HTTP是不同的域 ie:URL类似于和 我正在尝试将用户登录到安全域,设置会话变量,然后重定向到主页。但是,执行此操作时,会话变量将丢失 unsecure Index.php:Php 在HTTP和HTTPS之间传递会话变量,php,session,ssl,login,https,Php,Session,Ssl,Login,Https,某些主机提供商(如HostGator)为帐户提供共享SSL证书。这意味着我的HTTPS链接与我的HTTP是不同的域 ie:URL类似于和 我正在尝试将用户登录到安全域,设置会话变量,然后重定向到主页。但是,执行此操作时,会话变量将丢失 unsecure Index.php: <?php session_start(); echo $_SESSION['name']; ?> <html><body> <p><a href="https://s
<?php session_start();
echo $_SESSION['name'];
?>
<html><body>
<p><a href="https://secure123.hostgator.com/~bill/login.php">Login</a></p>
</body></html>
<?php session_start();
$_SESSION['name'] = "Bill";
header("location: http://www.mydomain.com/index.php")
?>
Secure Login.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 session_start();
$_SESSION['name'] = "Bill";
header("location: http://www.mydomain.com/index.php")
?>
如何确保http和https上的所有文件都能读取会话变量?您可以通过GET提供会话id
header("location: http://www.mydomain.com/index.php?PHPSESSID=".session_id());
在另一边你可以打开
或使用函数设置会话id
Guy的可能副本已经很好地解释了如何管理HTTP和HTTPS之间的会话。通过在混乱的URL中获取结果来提供id,这是我试图避免的——用于SEO和书签等。还有其他方法吗?比如使用POST或其他什么?如果你通过我提供的链接,你可以了解不同的解决方案。。。您可以使用cookies、post、实现缓存层。。。检查所有答案并实现符合您需求的最佳答案:)通过在我试图避开的混乱URL中获取结果提供id-用于SEO和书签等。还有其他方法吗?比如使用POST或其他什么?你确定搜索引擎会尝试登录吗?另外,你也可以使用POST。登录后,向用户显示从https到http的自动提交(onload->submit)表单。