程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php中http與https跨域共享session的解決方法

php中http與https跨域共享session的解決方法

編輯:PHP綜合

遇到了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。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved