HTTP/HTTPS 移行中のセッション データの維持
同じサーバー上で HTTP サービスと HTTPS サービスを切り替えると、セッション変数が失われる可能性があります。これは、HTTP セッション ID が HTTPS セッションに転送されないためです。
幸いなことに、セッション ID を渡す方法は 3 つあります。
1。 PHP: session_start()
session_start() は、リクエスト (GET、POST、または Cookie 経由) のセッション ID を使用してセッションを確立または再開します。通常、session_start() でスクリプトを開始すると、セッション ID を設定できます。
セッション ID が設定されていない場合は、session_id() で取得し、session_id() を使用して設定できます。
2. PHP: session_id()
次に、セッション データを維持する 2 つのスクリプト (HTTP 用と HTTPS 用) を使用する例を示します。
HTTP スクリプト:
<?php // Start session and display a link to transfer session ID. session_start(); $currentSessionID = session_id(); $_SESSION['testvariable'] = 'It worked'; echo '<a href="https://example.com/securePage.php?session=' . $currentSessionID . '">Click to transfer session</a>'; ?>
HTTPSスクリプト:
<?php // Retrieve session ID from the GET request. $currentSessionID = $_GET['session']; // Set session ID cookie. session_id($currentSessionID); // Start session. session_start(); // Test retrieval of variable set in HTTP script. if (isset($_SESSION['testvariable'])) { echo $_SESSION['testvariable']; } else { echo 'It did not work.'; } ?>
3.適切なリンクの確保
同じセッション データ ストレージ基板を維持するには、HTTP および HTTP リンクを調整して「www」プレフィックスを含めるか除外する必要があります。
http:// www.example.com/page.php は https://www.example.com/page.php にリンクし、http://example.com/page.php は https://www.example.com/page.php にリンクします。 https://example.com/page.php.
以上がHTTP と HTTPS を切り替えるときにセッション データを維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。