在HTTP/HTTPS 轉換期間維護會話資料
在同一伺服器上的HTTP 和HTTPS 服務之間切換時,會話變數可能會丟失。這是因為 HTTP 會話 ID 不會傳輸到 HTTPS 會話。
幸運的是,可以透過三種方式傳遞會話 ID:
1。 PHP:session_start()
session_start() 使用請求中的會話 ID(透過 GET、POST 或 cookie)建立或復原會話。透過使用 session_start() 啟動腳本,您通常可以設定會話 ID。
如果未設定會話 ID,您可以使用 session_id() 檢索它,然後使用 session_id() 設定它。
2。 PHP:session_id()
這是一個使用兩個腳本的範例,一個用於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和HTTPS切換時如何維護會話資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!