2010-01-19 5 views
1

session_id()에 문제가 있습니다. session_destroy()를 호출하면 로그 아웃 페이지로 이동 한 다음 다시 시작 페이지로 돌아갑니다. session_id는 여전히 동일합니다. 무엇을해야합니까? 그러나 브라우저 창을 닫을 때 session_id는 새로운 것이지만 사람이 브라우저 창을 닫지 않으면 어떻게됩니까?PHP : 세션 문제가 있습니까?

답변

4

session_destroy()는 쿠키의 세션 ID가 아니라 서버의 세션 데이터를 파괴합니다. setcookie()를 사용하여 쿠키를 해제하거나 session_regenerate_id()를 사용하여 새 ID를 가져 오십시오.

+0

에도 session_regenerate_id (아래 순서로 이들 기능) 정확한 함수 이름 (HTTP 인을 사용 // de.php.net/manual/en/functionsession-regenerate-id.php) – Thomas

0

재생 및 파괴 변수들의 순서가 중요하다 :

function _session_destroy() { 
    session_regenerate_id(); 
    session_destroy(); 
} 
-1

session_start(); 
session_unset(); 
/* Kill all session variables */ 
    unset($_SESSION['variable1']); 
    unset($_SESSION['variable2']); 
    . 
    . 
    . 
    . 
    . 
    unset($_SESSION['variableN']); 


    $_SESSION = array(); // reset session array 

/* now generate session id */ 

    session_regenerate_id(); 
    session_destroy(); // destroy session.