Sitzungsdaten während des HTTP/HTTPS-Übergangs verwalten
Beim Wechsel zwischen HTTP- und HTTPS-Diensten auf demselben Server können Sitzungsvariablen verloren gehen. Dies liegt daran, dass die HTTP-Sitzungs-ID nicht an die HTTPS-Sitzung übertragen wird.
Glücklicherweise gibt es drei Möglichkeiten, die Sitzungs-ID zu übergeben:
1. PHP: session_start()
session_start() erstellt eine Sitzung oder setzt sie fort, indem sie die Sitzungs-ID aus der Anfrage verwendet (über GET, POST oder Cookie). Durch Starten eines Skripts mit session_start() können Sie normalerweise die Sitzungs-ID festlegen.
Wenn die Sitzungs-ID nicht festgelegt ist, können Sie sie mit session_id() abrufen und dann mit session_id() festlegen.
2. PHP: session_id()
Hier ist ein Beispiel mit zwei Skripten, eines für HTTP und eines für HTTPS, die Sitzungsdaten verwalten:
HTTP-Skript:
<?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 Skript:
<?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. Sicherstellen einer ordnungsgemäßen Verknüpfung
HTTP- und HTTP-Links müssen angepasst werden, um das Präfix „www“ ein- oder auszuschließen, um das gleiche Sitzungsdatenspeichersubstrat beizubehalten.
Stellen Sie sicher, dass http:// www.example.com/page.php verweist auf https://www.example.com/page.php und http://example.com/page.php verweist auf https://example.com/page.php.
Das obige ist der detaillierte Inhalt vonWie kann ich Sitzungsdaten beim Wechsel zwischen HTTP und HTTPS pflegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!