PHP의 session_unset()과 session_destroy()의 차이점은 무엇입니까?
php.net 의 메뉴얼로부터, 다음의 문서를 참조해 주세요.
session_destroy : 세션에 등록된 모든 데이터를 삭제합니다.
session_unset : 모든 세션 변수를 해방합니다.
세 가지 질문은 다음과 같습니다.
두 기능은 매우 비슷해 보입니다.
그 둘의 차이점은 무엇일까요?
둘 다 세션에 등록된 모든 변수를 삭제하는 것 같습니다.세션 자체를 파괴하는 사람이 실제로 있나요?그렇지 않은 경우 이를 수행하려면 어떻게 해야 합니까(세션 자체를 파기).
두 기능 모두 클라이언트에서 세션 쿠키를 삭제하지 않는 것이 맞습니까?
session_unset
를 클리어합니다.$_SESSION
변수.이는 다음을 수행하는 것과 같습니다.
$_SESSION = array();
따라서 이것은 로컬에만 영향을 줍니다.$_SESSION
세션 저장소의 세션 데이터가 아닌 변수 인스턴스입니다.
이와는 반대로, 는 세션 스토리지에 저장된 세션 데이터(예를 들어 파일 시스템의 세션 파일)를 삭제합니다.
다른 모든 것은 변경되지 않습니다.
session_destroy();
세션 전체를 삭제합니다.
session_unset();
세션에서 변수만 삭제합니다. 세션은 여전히 존재합니다.데이터만 잘립니다.
session_unset();
모든 세션 변수의 모든 데이터를 지웁니다.
session_destroy();
모든 세션을 삭제합니다.
예:
session_start();
session_destroy();
$a = "1234";
$_SESSION[a] = $a;
$_SESSION[a]
이NULL
.
session_start();
session_unset();
$a = "1234";
$_SESSION[a] = $a;
$_SESSION[a]
이1234
.
그럼 다음 항목을 사용합니다.
session_start();
session_destroy();
session_start();
$a = "1234";
$_SESSION[a] = $a;
session_unset()
를 클리어 합니다.$_SESSION
변수(와 같이)array()
세션 파일은 건드리지 않습니다.하지만 스크립트가 종료되면$_SESSION
파일에 써집니다.그러면 파일이 지워지지만 삭제되지 않습니다.사용할 때session_destroy()
그것은 닿지 않는다$_SESSION
(사용)var_dump($_SESSION)
끝나고session_destroy()
세션 파일은 삭제되므로 스크립트가 종료될 때 상태를 기록하는 파일은 없습니다.$_SESSION
.
사용하려고 했습니다.session_unset($_SESSION['session_name'])
특정 세션 이름 또는 개인/단일 세션 이름만 설정되지 않을 것으로 생각됩니다.단, 을 사용하여session_unset($_SESSION['session_name'])
모든 세션 이름만 설정 해제됩니다.올바른 사용 코드는unset($_SESSION['session_name'])
단일 세션 이름을 설정 해제하는 경우.
session_destroy()
페이지 이동 후 세션이 삭제됩니다.session_unset()
코드가 실행되면 세션이 삭제됩니다.
session_start(); #브라우저 실시간메모리에 가상 어레이(어소시에이션)가 생성됩니다.
아이템 2개 추가
> $_SESSION['me'] = "Yadab";
> $_SESSION['you'] = "Avi";
>
> print_r($_SESSION); #will give, array( "me"=>"Yadab", "you"=>"Avi" )
테스트 1
> unset($_SESSION['me']); #only 'me' variable is removed fully (index & value)
> print_r($_SESSION); #now the array is Array("you"=>"Avi")
테스트 2
> session_destroy(); #will unset the values of all session variables, but indexes exists
> print_r($_SESSION); #Output, Array("you"=>undefined)
> #but some browser can store the value in cookies
테스트 3
> session_unset(); #will unset all the main variables not only the values
> print_r($_SESSION); #that means session array is now empty, like Array()
블록 1, 2, 또는 3을 개별적으로 테스트하여 다른 블록의 코멘트를 추가합니다.
세션 데이터가 확실하게 삭제되도록 하려면 session_destroy()와 session_unset()을 동시에 사용해야 한다고 생각합니다.
언급URL : https://stackoverflow.com/questions/4303311/what-is-the-difference-between-session-unset-and-session-destroy-in-php
'source' 카테고리의 다른 글
MySQLd가 활성 드라이버인지 확인하는 방법 (0) | 2022.09.24 |
---|---|
ipython의 모든 경고 숨기기 (0) | 2022.09.24 |
"\u00ed"와 같은 Unicode 이스케이프 시퀀스를 적절한 UTF-8 인코딩 문자로 디코딩하려면 어떻게 해야 합니까? (0) | 2022.09.24 |
Java 언어로 미화된 클래스 (0) | 2022.09.24 |
VueJ + Vuex에서 여러 웹 소켓 엔드포인트를 처리하는 방법 (0) | 2022.09.24 |