본문 바로가기

Python

세션(SESSION)을 완전히 삭제하고 로그아웃하는 함수

반응형

PHP 서버로에 로그아웃 할때 세션($_SESSION)에 있는 모든 값을 완전히 삭제하고 함수

클로드로 작성

 

<?php
	/**
	 * 세션을 완전히 삭제하고 로그아웃하는 함수
	 * 
	 * @return void
	 */
	function secureLogout() {
		// 1. 세션 배열의 모든 데이터 초기화
		$_SESSION = array();

		// 2. 세션 쿠키 삭제
		if (isset($_COOKIE[session_name()])) {
			setcookie(session_name(), '', time()-3600, '/');
		}

		// 3. 서버에 저장된 세션 파일 삭제
		session_destroy();

		// 4. 추가 보안을 위해 세션 ID 재생성
		session_start();
		session_regenerate_id(true);
		session_destroy();

		// 5. 선택적: 다른 쿠키들도 삭제하고 싶다면
		// 모든 쿠키 삭제
		if (isset($_SERVER['HTTP_COOKIE'])) {
			$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
			foreach($cookies as $cookie) {
				$parts = explode('=', $cookie);
				$name = trim($parts[0]);
				setcookie($name, '', time()-3600, '/');
			}
		}
	}
	
	session_start();
	secureLogout();
?>
반응형