HTTP および HTTPS プロトコルでの PHP セッション共有のクロスドメイン ソリューションは最善ではないかもしれませんが、より実用的です。
具体的な解決策は以下の通りです。
$currentSessionID=session_id();session_id($currentSessionID);
簡単なコード例:
(HTTP)
<?php</p><p>session_start();</p><p><span style="font-family: Arial, Helvetica, sans-serif; font-size: 14px;">$currentSessionID=session_id(); </span></p><p>$_SESSION['username']='scutephp';</p><p>echo '<a href="https://www.scutephp.com/jquery.php?session="'.$currentSessionID.'">点击这里跳转到HTTPS协议下</a>';
(HTTPS)
<span style="font-size: 14px;"><?php</span></p><p>$currentSessionID=$_GET['session'];</p><p>session_id($currentSessionID);</p><p>session_start();</p><p>if(!empty($_SESSION['username'])){ </p><p>echo $_SESSION['username'];</p><p>}else{ </p><p> echo 'Session did not work.';</p><p>}<span style="font-size: 14px; font-family: Arial, Helvetica, sans-serif;">
この方法ではセッション ID の送信が暗号化されず、他の人がそれを盗聴して検出し、このセッション ID を取得してから、セッションデータを取得します。したがって、必要に応じて、この ID 値を暗号化することを検討できます。