遇到了HTTP、HTTPS協議下session共享解決cookie失效的問題,這裡提供一個臨時解決辦法。
實現原理:把session id設置到本地的cookie。
如下:
復制代碼 代碼如下:
$currentSessionID = session_id();
session_id($currentSessionID );
以下是實現代碼,分為http與https兩部分。
1,http部分:
復制代碼 代碼如下:
<?php
session_start();
$currentSessionID = session_id();
$_SESSION['testvariable'] = 'Session worked';
$secureServerDomain = 'www.jb51.net';
$securePagePath = '/safePages/securePage.php'
echo '<a href="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 'Session did not work.';
}
?>
說明:
有點安全問題,session id的傳輸是沒加密的,可以嗅探偵測到,獲取這個session id進而獲取session數據。
建議加密此id。