HTTP および HTTPS プロトコルでのセッション共有のクロスドメイン ソリューションは最善ではないかもしれませんが、より実用的です。具体的な解決策は以下の通りです。
$currentSessionID=session_id(); session_id($currentSessionID);
簡単なコード例:
(HTTP)
<?php session_start(); $currentSessionID=session_id(); $_SESSION['username']='Alixixi'; echo '<a href="https://www.Alixixi.com/jquery.php?session="'.$currentSessionID.'">点击这里跳转到HTTPS协议下</a>';
(HTTPS)
<?php $currentSessionID=$_GET['session']; session_id($currentSessionID); session_start(); if(!empty($_SESSION['username'])){ echo $_SESSION['username']; }else{ echo 'Session did not work.'; }
この方法ではセッション ID の送信が暗号化されず、他の人がセッション ID を盗聴して検出し、セッション ID を取得してセッション データを取得できるため、セキュリティ上の問題が少しあります。したがって、必要に応じて、この ID 値を暗号化することを検討できます。暗号化に関する記事については、次のサイトを参照してください:
PHP の暗号化および復号化関数