이 시간 이후에는 세션이 가비지로 표시되고 가비지 수집기는 기본적으로 1 %의 확률 (session.gc_probability)로 시작하기 때문에 session.gc_maxlifetime에만 의존 할 수 없습니다.
더 나은 방법은 IMHO가 만료 된 데이터를 처리하는 것입니다.
당신은 예를 들어 시간을 시작하고 세션 변수에 저장할 수 있습니다 :
<?php $_SESSION['last_seen'] = time();//Update this value on each user interaction. ?>
Later..via 크론은이 같은 일을 할 수 있습니다
<?php
//Get the session id from file name and store it into the $sid variable;
session_id($sid);//try to resume the old session
session_start();
if (isset($_SESSION['last_seen']) && $_SESSION['last_seen'] > $timeout){//Session is expired
//delete file
session_destroy();
}else if (!isset($_SESSION['last_seen')){ //already garbaged
//delete file
session_destroy();
}
?>
테스트하지 ... 그냥 아이디어
나는 마침내 만료 된 세션을 제거하는 것이 웹 서버의 일임을 기억하므로이 메커니즘에 연결할 수 있을까요? – Mchl
@Mchl 예, 그렇습니다. 만료 된 세션을 제거하는 것은 서버의 작업이지만 원하는 작업은 아닙니다. 나는 그의 세션이 만료되었거나 내 서버의 공간을 차지하는 많은 원치 않는 파일이있을 경우 사용자가 업로드 한 파일을 제거하려고합니다. –