source

PHP의 session_unset()과 session_destroy()의 차이점은 무엇입니까?

factcode 2022. 9. 24. 09:56
반응형

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

반응형