세션 처리 session_destroy

(PHP 4, PHP 5, PHP 7, PHP 8)

session_destroy — 세션에 등록된 모든 데이터 삭제


설명

session_destroy(): bool

session_destroy()는 현재 세션과 관련된 모든 데이터를 파괴합니다. 세션과 관련된 전역 변수를 설정 해제하거나 세션 쿠키를 설정 해제하지 않습니다. 세션 변수를 다시 사용하려면 session_start()를 호출해야 합니다.

참고: 일반 코드에서 session_destroy()를 호출할 필요가 없습니다. 세션 데이터를 삭제하는 대신 $_SESSION 배열을 정리하십시오.

세션을 완전히 종료하려면 세션 ID도 설정 해제해야 합니다. 쿠키를 사용하여 세션 ID를 전파하는 경우(기본 동작) 세션 쿠키를 삭제해야 합니다. 이를 위해 setcookie()를 사용할 수 있습니다.

session.use_strict_mode가 활성화된 경우. 세션 ID와 연결된 데이터가 없을 때 세션 모듈이 세션 ID 쿠키를 허용하지 않고 새 세션 ID 쿠키를 설정하므로 사용하지 않는 세션 ID 쿠키를 제거할 필요가 없습니다. 모든 사이트에서 session.use_strict_mode를 활성화하는 것이 좋습니다.

경고 즉각적인 세션 삭제는 원치 않는 결과를 초래할 수 있습니다. 동시 요청이 있는 경우 다른 연결에서 갑작스러운 세션 데이터 손실이 발생할 수 있습니다. 예를 들어 JavaScript의 요청 및/또는 URL 링크의 요청.

현재 세션 모듈은 빈 세션 ID 쿠키를 허용하지 않지만 즉시 세션을 삭제하면 클라이언트(브라우저) 측 경쟁 조건으로 인해 빈 세션 ID 쿠키가 발생할 수 있습니다. 이로 인해 클라이언트는 불필요하게 많은 세션 ID를 생성합니다.

이를 방지하려면 삭제 타임스탬프를 $_SESSION으로 설정하고 나중에 액세스를 거부해야 합니다. 또는 애플리케이션에 동시 요청이 없는지 확인하십시오. 이것은 session_regenerate_id()에도 적용됩니다.


매개변수

이 함수에는 매개변수가 없습니다.


반환 값

성공하면 true를, 실패하면 false를 반환합니다.


Examples

예제 #1 $_SESSION으로 세션 파괴

                  
<?php
// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();

// Unset all of the session variables.
$_SESSION = array();

// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

// Finally, destroy the session.
session_destroy();
?>
                  
                

메모

메모: $_SESSION을 사용하지 않는 더 이상 사용되지 않는 이전 코드에 대해서만 session_unset()을 사용하십시오.


기타