HTTP、HTTPS協議下session共享解決cookie失效 的辦法:(也許不是最好的,但是實用)
原理就是把session id設置到本地的cookie,
復制代碼 代碼如下:
$currentSessionID = session_id();
session_id($currentSessionID );
簡單事例代碼:
(HTTP)
復制代碼 代碼如下:
session_start();
$currentSessionID = session_id();
$_SESSION['testvariable'] = 'Session worked';
$secureServerDomain = 'www.sjolzy.cn';
$securePagePath = '/safePages/securePage.php'
echo '<a href="https://' . $secureServerDomain . $securePagePath . '?session="' . $currentSessionID . '">點擊這裡跳轉到HTTPS 協議下</a>';
(HTTPS)
復制代碼 代碼如下:
$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。
一個magento站的cookie設置一直失效,糾結好多天,最後明悟是HTTP和HTTPS跨域 使COOKIE失效了。。