2017-12-06 19 views
-3

로그인 시스템을 만들려고합니다. 현재 세션 ID를 지울 수 없다는 점을 제외하고는 모든 것이 예상대로 작동하는 것 같습니다세션 ID를 삭제할 수 없습니다.

session_unset()session_destroy이 효과가없는 이유는 무엇입니까?

업데이트 :

아래

의 index.php

를 해결
session_start(); 

    if (array_key_exists('id', $_COOKIE) && $_COOKIE ['id']) { 
    $_SESSION['id'] = $_COOKIE['id']; 

print("SESSION ID"); 
print("<br>"); 
print_r($_SESSION); 
print("<br>"); 
print("COOKIE"); 
print("<br>"); 
print_r($_COOKIE); 

    } 

// SET SESSION

function setSession($setSessionData) { 

    $_SESSION['id'] = $setSessionData[0]; 

    if ($setSessionData[1] == 'yes') { 
     setcookie('id', $setSessionData[0], time() + 60*60*24*365, '/' ); 
    } 
    }; 

// CLEAR SESSION

function unSetSession() { 

    session_unset(); 
    setcookie("id", "", time() - 60*60*24*365, '/'); 
    session_destroy(); 

} 
+0

로그인 및 로그 아웃 페이지의 코드를 제공하지 않았습니다. –

+2

세션 ID를 직접 설정 하시겠습니까? PHP는 PHPSESSID를 자체적으로 처리하고이를 브라우저 쿠키에 기록합니다. – Matschek

+0

@ CavidKərimov 모든 Ajax 호출입니다. @Matscheck 그게 내가 튜토리얼에서 배운 내용이지만 신인입니다. 문제는'session_unset()'이고'session_destroy'는 아무런 효과가없는 것 같습니다 – Doer

답변

0

해결했다

Ajax를 통해 호출 된 내 함수에서 세션을 초기화해야했습니다. 로그 아웃 기능은 다음과 같습니다 :

function unSetSession() { 

    session_start(); 
    $_SESSION = array(); 
    setcookie("id", "", time() - 60*60*24*365, '/'); 
    session_destroy(); 

}