세션
PHP Manual

소개

PHP의 세션 지원은 지속적인 접근에 어떠한 데이터를 유지하는 방법입니다. 사용자 정의 어플리케이션을 만들고 웹 사이트의 인상을 증가시키도록 해 줍니다.

웹 사이트에 접근하는 방문자에게 세션 id라고 불리는 고유 id를 할당합니다. 사용자 측에서는 쿠키에 저장하거나, URL에 포함될 수 있습니다.

세션 지원은 요청 간에 유지되는 임의 갯수의 변수를 등록할 수 있게 합니다. 방문자가 사이트에 접근하면, PHP가 자동적이나 (session.auto_start를 1로 설정시), 요청에 따라서 (명시적인 session_start()session_register()를 통해 암시적으로) 요청에서 지정한 세션 id를 확인합니다. 이 때, 이전에 저장해둔 환경이 재생성됩니다.

Caution

session.auto_start를 사용할 때, 객체를 세션에 넣는 유일한 방법은 auto_prepend_file을 사용하여 클래스 정의를 적재하는 것입니다. 그렇지 않으면 객체를 serialize하여 저장하고 나중에 unserialize해야 합니다.

모든 등록된 변수는 요청이 끝난 후에 일렬화됩니다. 등록된 변수가 해제되면 정의되지 않은 것으로 표시합니다. 지속적인 접근에서, 이들은 나중에 사용자가 정의하지 않는 한 세션 모듈에서 정의하지 않습니다.

Warning

몇몇 자료형의 데이터는 일렬화될 수 없기에 세션에 저장할 수 없습니다. resource 변수나 순환 참조를 가진 객체(즉, 자신에 대한 참조를 다른 객체로 넘기는 객체)가 포함됩니다.

Note: 세션 다루기는 PHP 4.0.0에서 추가되었습니다.

Note: 세션으로 작업할 때 주의할 점은 session_register() 함수를 사용해서 변수를 등록하거나, $_SESSION 자동 전역 배열에 새 키를 추가하지 않는 한 세션 기록이 만들어지지 않습니다. 이는 세션이 session_start() 함수로 시작되었는지 여부와도 상관이 없습니다.

Note: PHP 5.2.2에는 open_basedir이 설정되고 "/tmp"가 명시적으로 경로에 추가되어 있지 않아도 세션 파일을 "/tmp"에 저장할 수 있는 문서화되지 않은 기능이 있었습니다. 이 기능은 PHP 5.3.0부터 PHP에서 제거되었습니다.


세션
PHP Manual