세션 처리 session_start
(PHP 4, PHP 5, PHP 7, PHP 8)
session_start — 새 시작 또는 기존 세션 재개
설명
session_start(array $options
= []): bool
session_start()는 GET 또는 POST 요청을 통해 전달되거나 쿠키를 통해 전달된 세션 식별자를 기반으로 세션을 생성하거나 현재 세션을 재개합니다.
session_start()가 호출되거나 세션이 자동으로 시작될 때 PHP는 열기 및 읽기 세션 저장 핸들러를 호출합니다. 이들은 기본적으로 제공되거나 PHP 확장(예: SQLite 또는 Memcached)에서 제공하는 내장 저장 핸들러입니다. 또는 session_set_save_handler()에 의해 정의된 사용자 정의 핸들러일 수 있습니다. 읽기 콜백은 기존 세션 데이터(특수 직렬화된 형식으로 저장됨)를 검색하고 읽기 콜백이 저장된 세션 데이터를 PHP 세션 처리로 반환할 때 직렬화 해제되고 $_SESSION 슈퍼글로벌을 자동으로 채우는 데 사용됩니다.
명명된 세션을 사용하려면 session_start()를 호출하기 전에 session_name()을 호출하십시오.
session.use_trans_sid가 활성화되면 session_start() 함수는 URL 재작성을 위한 내부 출력 핸들러를 등록합니다.
사용자가 ob_gzhandler
또는 이와 유사한 ob_start()를 사용하는 경우 적절한 출력을 위해 함수 순서가 중요합니다. 예를 들어, 세션을 시작하기 전에 ob_gzhandler
를 등록해야 합니다.
매개변수
options
- 제공된 경우 현재 설정된 세션 구성 지시문을 재정의할 옵션의 연관 배열입니다. 키에는 세션이 포함되지 않아야 합니다. 접두사.
일반적인 구성 지시문에 추가하여
read_and_close
옵션도 제공할 수 있습니다.true
로 설정하면 읽은 직후 세션이 닫히므로 세션 데이터가 변경되지 않는 경우 불필요한 잠금이 방지됩니다.
반환 값
이 함수는 세션이 성공적으로 시작된 경우 true
를 반환하고 그렇지 않으면 false
를 반환합니다.
변경 로그
버전 | 설명 |
---|---|
7.1.0 | session_start()는 이제 false 를 반환하고 세션 시작에 실패했을 때 더 이상 $_SESSION을 초기화하지 않습니다. |
Examples
기본 세션 예
예제 #1 page1.php
<?php
// page1.php
session_start();
echo 'Welcome to page #1';
$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';
// Or maybe pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>
page1.php를 본 후 두 번째 페이지 page2.php는 마술처럼 세션 데이터를 포함합니다. 예를 들어 상수 SID
가 무엇인지 설명하는 propagating session ids에 대한 정보는 세션 참조를 읽으십시오.
예제 #2 page2.php
<?php
// page2.php
session_start();
echo 'Welcome to page #2<br />';
echo $_SESSION['favcolor']; // green
echo $_SESSION['animal']; // cat
echo date('Y m d H:i:s', $_SESSION['time']);
// You may want to use SID here, like we did in page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>
session_start()에 옵션 제공
예제 #3 쿠키 수명 재정의
<?php
// This sends a persistent cookie that lasts a day.
session_start([
'cookie_lifetime' => 86400,
]);
?>
예제 #4 세션 읽기 및 닫기
<?php
// If we know we don't need to change anything in the
// session, we can just read and close rightaway to avoid
// locking the session file and blocking other pages
session_start([
'cookie_lifetime' => 86400,
'read_and_close' => true,
]);
메모
메모: 쿠키 기반 세션을 사용하려면 브라우저에 아무 것도 출력하기 전에 session_start()를 호출해야 합니다.
메모: ob_gzhandler() 대신 zlib.output_compression을 사용하는 것이 좋습니다.
메모: 이 함수는 구성에 따라 여러 HTTP 헤더를 보냅니다. 이러한 헤더를 사용자 정의하려면 session_cache_limiter()를 참조하십시오.
기타
- $_SESSION
- session.auto_start 구성 지시문
- session_id() - 현재 세션 ID 가져오기 및/또는 설정