HTTP/HTTPS 전환 중 세션 데이터 유지
동일한 서버에서 HTTP와 HTTPS 서비스 간 전환 시 세션 변수가 손실될 수 있습니다. 이는 HTTP 세션 ID가 HTTPS 세션으로 전송되지 않기 때문입니다.
다행히 세션 ID를 전달하는 방법에는 세 가지가 있습니다.
1. PHP: session_start()
session_start()는 요청(GET, POST 또는 쿠키를 통해)의 세션 ID를 사용하여 세션을 설정하거나 재개합니다. 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. 적절한 링크 보장
동일한 세션 데이터 저장소 기반을 유지하려면 "www" 접두사를 포함하거나 제외하도록 HTTP 및 HTTP 링크를 조정해야 합니다.
http:// www.example.com/page.php는 https://www.example.com/page.php로 링크되고 http://example.com/page.php는 다음으로 링크됩니다. https://example.com/page.php.
위 내용은 HTTP와 HTTPS 간 전환 시 세션 데이터를 어떻게 유지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!