PHP 세션 - 소개

PHP의 세션기능은 여러번에 걸친 억세스를 통해서 특정 데이터를 유지하기위한 방법을 구현하고 있다. 보다 커스터마이즈된 어플리케이션을 구축할 수가 있다. 

Web 사이트 방문자에게 세션ID 라는 유니크ID 를 할당하며 이 ID는 유저(클라이언트)쪽에 쿠키로 저장하거나 URL 에 추가한다. 

세션 기능을 사용하여 임의의 갯수의 변수를 리퀘스트와 리퀘스트사이에 넘겨주고 받을 수 있게되었다.  방문자가 사이트에 억세스할때 PHP 는 특정 세션 ID 가 리퀘스트와 함께 송신되고 있는지를 (session.auto_start 가 1일 경우) 자동적으로 , 또는 (session_start() 에 의해 명시적으로 또는 session_register() 에 의한 암묵적으로)  확인한다.  이 ID 가 송신되고 있는 경우에는 이전에 보존된 환경이 재생성된다.

경고 : session.auto_start 를 on 한 경우 오브젝트를 세션변수에 대입할 수 없게 된다. 세션이 오브젝트를 재생성하기 위해서는 세션 개시전에 클래스정의가 로드되어야하기 때문이다.

모든 등록된 변수는 리퀘스트가 종료된후 시리얼라이즈된다.  미정의 등록변수는 미정의 되었다고 마크가 붙는다.  이러한 변수는 나중에 유저가 정의하지않는 한 이후의 억세스에서 세션모듈에 의해 정의되지 않는다.


경고 : 일부데이터 타입은 시리얼라이즈가 불가능하기에 세션에 저장할 수 없다. 리소스 타입의 변수 또는 순환 참조(circular references)를 하고 있는 오브젝트  (예를 들어 자기자신에의 참조를 다른 오브젝트에게 넘겨주고 있는 오브젝트 )  들이 여기에 속한다.


주의 : 세션기능은 PHP 4.0.0 에서 지원됨.

주의 : 세션을 처리할때 session_register() 함수를 사용하거나  수퍼글로벌 배열 $_SESSION 에 새로운 키를 추가하여 변수가 등록될때까지 세션의 레코드는 생성되지 않는다.  세션이 session_start() 함수에 의해 개시될때에도 마찬가지이다.


원문링크 :
http://www.php.net/manual/en/intro.session.php