Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 세션이 이미 시작되었는지 확인하는 방법은 무엇입니까?


PHP에서 세션을 시작하기 위해 내장 함수 session_start()를 사용합니다. 그러나 PHP 스크립트에서 직면하는 문제는 한 번 이상 실행하면 오류가 발생한다는 것입니다. 그래서 여기서는 session_start() 함수를 두 번 호출하지 않고 세션이 시작되었는지 여부를 확인하는 방법을 배웁니다.

이 문제를 해결하기 위해 따라야 할 두 가지 방법이 있습니다.

PHP 5.4.0 이하 버전의 경우.

예시

<?php
   if(session_id() == ''){
      session_start();
   }
?>

설명

세션이 시작되지 않은 경우 위의 코드는 항상 PHP 스크립트에서 세션을 시작합니다.

두 번째 방법에서는 현재 세션의 상태를 반환하는 session_status() 함수를 사용할 수 있습니다. 이 함수는 모두 미리 정의된 상수인 세 개의 정수 값을 반환할 수 있습니다. 다음과 같습니다.

  • 0 – PHP_SESSION_DISABLED:세션이 현재 비활성화되어 있습니다.
  • 1 – PHP_SESSION_NONE:세션이 활성화되었지만 세션이 시작되지 않았습니다.
  • 2 – PHP_SESSION_ACTIVE:세션이 활성화되고 세션이 시작되었습니다.

예:

<?php
   if (session_status() == PHP_SESSION_NONE) {
      session_start();
   }
?>

설명

위의 코드는 세션이 시작되었는지 여부를 확인합니다. 시작되지 않은 경우 PHP 스크립트에서 세션을 시작합니다.

참고

session_status() 함수는 PHP 5.4.0 버전 이상에서만 실행됩니다.