>  기사  >  백엔드 개발  >  PHP에서 세션을 삭제하고 파괴하는 방법

PHP에서 세션을 삭제하고 파괴하는 방법

PHPz
PHPz원래의
2017-04-26 14:32:2119431검색

PHP에서 세션을 삭제하고 파기하는 방법: 세션 변수를 사용한 후 응답을 완료할 때 이를 삭제할 수도 있고, 사용자가 웹 시스템을 종료하려는 경우에도 파기할 수 있습니다. 서버의 모든 것을 파기하는 로그아웃 기능을 제공합니다.

PHP에서 세션을 삭제하고 파괴하는 방법

세션을 삭제하는 방법은 크게 세 가지가 있습니다. 단일 세션 삭제, 여러 세션 삭제, 현재 세션 종료 다음은 각각에 대한 간단한 요약입니다. 세 가지 방법 중 하나를 소개합니다.

(1)단일 세션 삭제

단일 세션을 삭제한다는 것은 단일 세션의 변수를 삭제하는 것을 의미하며, 배열 작업과 동일하며 직접 로그아웃합니다. $_SESSION 배열의 요소입니다.

예: $_SESSION['user'] 변수의 경우 unset() 함수를 사용할 수 있으며 코드는 다음과 같습니다.

unset( $_SESSION['user']);

참고: unset() 함수를 사용할 경우, $_SESSION 배열에 주의하세요. 요소는 생략할 수 없습니다. 즉, 전체 배열을 한 번에 등록 취소할 수 없습니다. 이렇게 하면 전체 세션의 기능이 비활성화됩니다. 예를 들어 unset($_SESSION) 함수는 전역을 삭제합니다. $_SESSION 변수는 복원할 수 없으며 사용자는 $_SESSION 변수를 다시 등록할 수 없습니다.

여러 대화 또는 전체 대화를 삭제하려면 다음 두 가지 방법을 사용할 수 있습니다.

(2)여러 세션 삭제

사용자가 Session에 등록한 변수를 모두 삭제하려면 즉, 여러 세션을 삭제하고 로그아웃하세요. $_SESSION에 빈 배열을 할당하면 모든 세션 변수를 구현할 수 있습니다. 코드는 다음과 같습니다.

$_SESSION = array();

(3) 현재 세션 종료

전체 세션이 종료되었습니다. 먼저 모든 세션 변수를 로그아웃한 후 session_destroy() 함수를 사용하여 현재 세션을 지우고 종료하고 세션의 모든 리소스를 지우고 세션을 완전히 삭제해야 합니다.

session_destroy();

session_start() 함수(세션 파일 생성)와 관련하여 session_destroy() 함수는 Session 작업을 종료(세션 파일 삭제)하는 데 사용되며, 성공하면 TRUE를 반환하고, 세션 데이터를 파괴하지 못하면 TRUE를 반환합니다. FALSE를 반환합니다. 단, 이 함수는 현재 세션과 관련된 변수를 해제하지 않으며, 클라이언트 쿠키에 저장된 세션 ID를 삭제하지도 않습니다.

PHP의 기본 세션은 쿠키를 기반으로 합니다. 세션 ID는 서버에 의해 클라이언트의 쿠키에 저장되므로 세션에서 로그아웃할 때도 쿠키에 저장된 세션 ID를 지워야 합니다. 이를 완료하려면 setcookie() 함수를 사용해야 합니다. 쿠키에서 세션 ID를 저장하는 쿠키 식별 이름은 세션 이름입니다. 이 이름은 php.ini의 session.name 속성에 지정된 값입니다. PHP 스크립트에서 세션 이름은 session_name() 함수를 통해 얻을 수 있습니다. 클라이언트 쿠키에 저장된 세션 ID를 삭제합니다.

이전 설명에서는 Session의 삭제 및 로그아웃 과정이 여러 단계를 거쳐야 한다고 요약할 수 있습니다. 다음은 예제를 통해 전체 코드를 제공합니다. 스크립트를 실행한 후 세션을 닫을 수 있고 이 세션과 관련된 모든 리소스가 삭제됩니다.

세션을 완전히 삭제하는 코드는 다음과 같습니다.

<?php
  //开启 Session
  session_start();
  // 删除所有 Session 变量
  $_SESSION = array();
  //判断 cookie 中是否保存 Session ID
   if(isset($_COOKIE[session_name()])){
     setcookie(session_name(),&#39;&#39;,time()-3600, &#39;/&#39;);
  }
  //彻底销毁 Session
  session_destroy();
?>

참고: $_SESSION = array()를 사용하여 $_SESSION 배열을 지우면 해당 배열도 삭제됩니다. 서버측 해당 사용자의 세션 파일 내용이 지워집니다. session_destroy() 기능을 사용하면 서버측에서 해당 사용자에 해당하는 세션 파일이 삭제됩니다.

관련 주제 추천: php 세션 (사진, 동영상, 사례 포함)

위 내용은 PHP에서 세션을 삭제하고 파괴하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.