2011-01-30 3 views
1

유휴 상태 또는 활동 중일 때 관계없이 (세션 사용) 세션 종료와 관계없이 누군가의 연결을 끊을 수있는 사람이 있습니까? PHP로 코딩 중이며 mysql이 데이터베이스로 사용 중입니다.5 분 후 사용자 연결 해제

+1

5 분 후에 무엇을 할 수 있습니까? –

+0

5 분 후에 세션을 파괴하십시오. 그런 다음 홈페이지로 리디렉션 – bsanneh

+0

메이트에게 더 많은 정보를 주거나 쿠키를 시도하거나 php.ini에서 세션 만료 시간을 설정하십시오 –

답변

3

사용자가 로그온하면 페이지가로드 될 때마다 세션 변수를 등록 할 수 있으며 로그온 한 후 5 분이 경과했는지 확인하십시오. 예 :

<?php 
session_start(); 
if($_SESSION["loggedin"] && ($_SESSION["timer"]<(time()-(5*60)))) { 
logout(); 

} 


function login() { 
//do login stuff 
$_SESSION["timer"]=time(); 
} 

function logout() { 
//do logout stuff 
} 

?> 
2

사용 session.gc-maxlifetime :

ini_set('session.gc-maxlifetime', 60*5); 

라인이 PHP 인터프리터에 의해 읽을 일단 위, 세션이 5 분 후에 만료됩니다.

+0

당신은'session.gc_probability'와' session.gc_divisor'. 또한 keatchs comment – levu

1

$_SESSION 배열에 마지막 작업의 타임 스탬프를 저장하고 과 현재 시간을 비교할 수 있습니다.

Garbace 수집기가 모든 페이지 요청에서 실행되지 않기 때문에 가비지 수집기 수명을 낮은 값으로 설정하면 작동하지 않습니다.

+0

에 대한 내 의견을 참조하십시오. PHP 구성 설정에 의존하지 않는 방법입니다. – keatch

+1

그래서 :) 구성 설정은 좋지만 5 분과 같은 작은 시간 절약을 위해 gc가 매우 자주 실행되어야하기 때문에 거의 쓸모가 없습니다 ... – levu

관련 문제