세션 처리 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()를 참조하십시오.


기타