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 버전 이상에서만 실행됩니다.