php의 session기본 유효 기간은 1440초(24분)입니다. 클라이언트가 24분 이상 새로 고침되지 않으면 현재 세션이 재활용되고 무효화됩니다. .
사용자가 브라우저를 닫으면 세션이 종료되고 세션도 만료됩니다.
php.ini의 session.gc_maxlifetime을 수정하여 세션 수명 주기를 설정할 수 있지만, 이 시간이 지나면 세션 정보가 즉시 삭제된다는 보장은 없습니다. 확률에 따라 GC가 시작되기 때문에 오랜 시간 동안 GC가 시작되지 않을 수 있습니다. 그러면 session.gc_maxlifetime을 초과한 후에도 많은 수의 세션이 여전히 유효합니다.
session.gc_maxlifetime = 30은 30초 후에도 세션 파일에 접근하지 않으면 만료된 세션으로 간주하여 대기 중임을 의미합니다. GC 재활용.
GC 프로세스 호출 확률은 session.gc_probability/session.gc_pisor를 통해 계산되며, session.gc_pisor의 기본값은 1000입니다.
session.gc_probability = 1000이면 GC 프로세스는 매번 session_start()를 실행합니다. 재활용을 수행하라는 요청을 받았습니다.
session.gc_probability/session.gc_pisor의 확률을 높이면 도움이 되겠지만 성능에 심각한 영향을 미치게 됩니다.
1. Memcache/redis를 사용하여 세션을 저장하고 만료 시간을 설정합니다. Memcache/redis의 재활용 메커니즘은 확률을 기반으로 하지 않기 때문에 이를 보장할 수 있습니다. 세션이 만료되면 세션이 무효화됩니다.
2. PHP만 사용하여 구현하고, 세션 클래스를 생성하고, 세션 작성 시 만료 시간을 작성합니다. 읽을 때 만료 시간을 기준으로 만료 여부를 확인하십시오.
<?php/** * Session控制类 */class Session{ /** * 设置session * @param String $name session name * @param Mixed $data session data * @param Int $expire 超时时间(秒) */ public static function set($name, $data, $expire=600){ $session_data = array(); $session_data['data'] = $data; $session_data['expire'] = time()+$expire; $_SESSION[$name] = $session_data; } /** * 读取session * @param String $name session name * @return Mixed */ public static function get($name){ if(isset($_SESSION[$name])){ if($_SESSION[$name]['expire']>time()){ return $_SESSION[$name]['data']; }else{ self::clear($name); } } return false; } /** * 清除session * @param String $name session name */ private static function clear($name){ unset($_SESSION[$name]); } } ?>
demo:
<?phpsession_start();$data = '123456'; session::set('test', $data, 10);echo session::get('test'); // 未过期,输出sleep(10);echo session::get('test'); // 已过期?>
이 글에서는 PHP를 사용하여 만료 시간을 엄격하게 제어하는 세션을 설정하는 방법을 설명합니다. 관련 내용은 PHP 중국어 웹사이트를 참조하세요.
관련 권장사항:
mysql 타임스탬프 형식 지정 함수 from_unixtime
mysql 함수 concat 및 group_concat 사용에 대한 지침
mysql innodb 오류 처리 방법에 대한 설명 시작하고 다시 시작할 수 없습니다
php 중국어 웹사이트 학습 주제: php 세션 (사진, 텍스트, 비디오, 사례 포함)
위 내용은 PHP를 사용하여 만료 시간이 엄격한 세션을 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!