遇到了HTTP、HTTPS协议下session共享解决cookie失效的问题,这里提供一个临时解决办法。
实现原理:把sessionid设置到本地的cookie。
如下:
代码如下:
$currentSessionID=session_id();
session_id($currentSessionID);
以下是实现代码,分为http与https两部分。
1,http部分:
代码如下:
<?php
session_start();
$currentSessionID=session_id();
$_SESSION['testvariable']='Sessionworked';
$secureServerDomain='www.jb51.net';
$securePagePath='/safePages/securePage.php'
echo'<ahref="https://'.$secureServerDomain.$securePagePath.'?session="'.$currentSessionID.'">点这里跳转到HTTPS协议</a>';
?>
2,HTTPS部分
代码如下:
<?php
$currentSessionID=$_GET['session'];
session_id($currentSessionID);
session_start();
if(!emptyempty($_SESSION['testvariable'])){
echo$_SESSION['testvariable'];
}else{
echo'Sessiondidnotwork.';
}
?>
说明:
有点安全问题,sessionid的传输是没加密的,可以嗅探侦测到,获取这个sessionid进而获取session数据。
建议加密此id。
|