IT_Programming/PHP

PHP에서 세션 사용하기 _ 세션 처리 함수

JJun ™ 2007. 9. 30. 13:21

1.session_unset()

현재 연결된 세션에 등록되어 있는 모든 변수의 값을 삭제한다.

session_unregister() 함수는 지정한 하나의 변수 자체를 완전히 삭제하는데 반해

session_unset() 함수는 세션 변수 자체를 삭제하는 것이 아니라 세션 변수에 저장되어 있던 값을

삭제한다.

그리고 하나의 세션 변수가 아닌 현재 세션에 등록되어 있는 모든 변수의 값을 삭제한다.

 

2.session_is_registered(세션변수)

세션 변수가 현재의 세션에 등록되어 있는지를 조사하여 존재하면 true, 존재하지 않으면 false를 반환한다.

 

3.session_save_path([경로])

세션 데이터 파일이 저장되는 디렉토리 경로를 반환하거나 지정한 디렉토리로 변경한다.

 

1)인자 없이 호출시 : 현재 세션 저장 디렉토리를 반환

$path=session_save_path()              C:/APM_Setup/phptemp

 

2)함수의 인자로 특정 경로 지정 : 세션 저장 디렉토리를 지정 경로로 변경

session_save_path("C:/APM_Setup");  
session_start();      //session_save_path() 함수는 session_start() 함수 호출 전에 호출해야 한다. 


 

4.session_name([세션변수])

현재의 세션 이름을 반환하거나 지정한 이름으로 변경한다.

인자없이 호출 했을 경우는 현재 세션의 이름을 반환하며 인자를 지정할 경우는

현재 세션을 지정한 값으로 변경하고 변경되기 전의 세션 이름을 결과로 반환한다.


echo session_name("JCA3001");          // 변경전 세션명 반환  PHPSESSID
echo session_name();                         // 현재 세션명 반환  JCA3001

 

 

5.session_id([변경할 아이디])

현재 세션 아이디를 반환하거나 지정한 값으로 변경한다.

인자 없이 호출할 경우는 현재의 세션 아이디를 그 결과로 반환하며

인자 지정시 현재의 세션 아이디를 지정한 인자값으로 변경한다.

$PHPSESSID로도 현재의 세션 아이디를 출력할 수 있다.

session_id()는 서버 측의 세션 id이며, $PHPSESSID는 클라이언트 측의 세션 id이다.

 

 

6.session_module_name()

현재 세션 데이터를 저장하는 방식에 관한 정보를 반환한다.

 

세션 데이터를 서버에 저장하는 방법

1) files : 세션 아이디를 그 이름으로 갖는 세션 데이터 파일에 저장

2) mm : 서버의 메모리 상에 저장

3) user : 세션을 다루는 방법을 사용자가 직접 정의하도록 함

 

7.session_get_cookie_params()

세션 쿠키와 관련된 정보를 배열의 형태로 반환한다.

 

8.session_set_cookie_params( lifetime, path, domain )

세션 쿠키를 발급할 때 필요한 인자를 설정한다.

 

9.session_encode()

현재 세션에 저장되어 있는 데이터를 보여준다.

한번에 여러 개의 쿠키를 도메인에 저장하기 위한 기술로

하나의 긴 문자열 안에 모든 데이터를 압축해서 넣는 방식이다.

하나의 쿠키에 여러 문자를 저장할 수 있으므로 편리하다.

 

session_start();
$_SESSION["name"]="kangsoo";
$_SESSION["book"]="위대한 개츠비";
$_SESSION["email"]= "soojeong.sarang";

$encoded_string=session_encode();

print "압축된 문자열은 $encoded_string이다.";

 

결과:

압축된 문자열은 name|s:7:"kangsoo";book|s:6:"위대한 개츠비";email|s:15:"soojeong.sarang";이다.

 

10.session_decode(데이터)

함수의 인자로 전달한 세션 데이터를 디코딩한다.

session_encode() 함수로 한 세션 데이터 압축을 해제한다.

 

11.session_cache_limiter([캐시허용수준])

현재 cache limiter 항목의 값으로 설정되어 있는 이름을 반환하거나 지정한 이름으로 변경한다.

cache limiter는 사용자가 요청한 웹페이지의 내용을 사용자의 시스템에 캐시로 남길 수 있는 허용 수준을 조절하는 항목이다.

 

 

PHP 환경설정 파일의 cache limiter의 단계

1)nocache : 사용자의 시스템에는 요청한 페이지가 절대로 캐시로 보관되지 않는다.   //기본값

2)private : 사용자가 요청한 페이지를 사용자의 시스템에 남기는 것을 엄격하게 허용하지만

               public 보다 엄격하다.

3)public : 사용자가 요청한 페이지를 사용자의 시스템에 남기는 것을 허용한다.

 

echo session_cache_limiter();         //기본값인 nocache 출력
session_cache_limiter("private");

echo session_cache_limiter();         //새로 설정한 private 출력

 

tip)

session 설정을 해준 후

폼양식을 입력하고 전송했을 때, [뒤로] 버튼을 누르면 입력한 값들이 모두 사라져 버린다.

이를 해결하기 위해서는 함수의 인자를 지정하지 않고 session_cache_limiter("") 로 설정함으로써

문제를 해결할 수 있다.

 

12.session_set_save_handler(함수명1, 함수명2 ...)

세션을 다룰 수 있는 사용자 정의 함수를 구현한다.

PHP의 세션 핸들링을 user로 한 경우에 사용한다.

 

 

출처 : http://cafe.naver.com/greatgatsby.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=163