2012-02-22 2 views
0

파괴되기 전에 데이터베이스 목적으로 세션 데이터를 저장할 수 있습니까?파괴되기 전에 세션 데이터를 저장 하시겠습니까?

는 예를 들어, 나는

// start session 
session_start(); 

// init session var 
if (!isset($_SESSION['images'])) $_SESSION['images'] = array(); 

array 
    0 => 
    array 
     'image_id' => int 1 
     'image_title' => string 'test 1' (length=6) 
    1 => 
    array 
     'image_id' => int 2 
     'image_title' => string 'test 2' (length=6) 

세션에서 다음 데이터를 그리고 세션이 파괴 될 때 또는 브라우저를 닫을 때 데이터베이스에 보내려고합니다.

if(unset($_SESSION['images'])) 
{ 
    // do something? 
} 

실현 가능합니까?

답변

0

에서 손님 세션 핸들러를 살펴 보자 당신은 일치하는 해시 브라우저에서 하나의 쿠키를 만들기로 session_start(); 생각한다 : 여기

이 기능의 흥미로운 테스트입니다 세션 파일이 서버에 있으면 서버는 "세션"이 활성 상태 인 동안 $ _SESSION에 모든 데이터를 저장합니다. 브라우저가 닫히면 쿠키는 브라우저에서 삭제되고 결국에는 (cron이 호출 한 정리) 세션 파일이 서버에서 제거됩니다.

기간 또는 사용자에 대한 영구 데이터를 저장하려는 경우 데이터베이스, 캐시 파일, memcache 등에 저장해야합니다.

0
if(unset($_SESSION['images'])) 
{ 
    // do something? 
} 

(변수가 설정되지 않은 경우에 실행되는) 귀하가 의도 한대로이 작동하지 않습니다. 대신 세션 변수를 성공적으로 설정 해제하고 // do something 부분을 실행합니다.

관련 문제