세션타임아웃기능 > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

세션타임아웃기능 정보

PHP 세션타임아웃기능

본문

PHP에서는 세션정보의 유효기간을 php.ini 에서 lifetime 부분을 설정하게 합니다.

그러나 소스를 출시할때 소스셋팅에서 php.ini파일설정과 같은 공정을 하나 거쳐야 하며, 수정을 위해서는 값변경후 서비스재시작해야 하는 등 불편한 점이 있습니다.

그래서 코드적으로 유효기간을 설정하는 방법을 하나 서술해드립니다.



function idle($time)
{
    if (!isset($_SESSION['timeout_idle'])) {
        $_SESSION['timeout_idle'] = time() + $time; // 세션'timeout_idle' 값이 비었으면 현 시점을 기준으로 $time값만큼을 유효기간으로 설정
    } else {
        if ($_SESSION['timeout_idle'] < time()) {            
            return true; // session 유효기간이 만료
        } else {
            $_SESSION['timeout_idle'] = time() + $time; // 새 요청이 올때마다 현 시점을  기준으로 유효기간을 업데이트
        }
    }
    return false; // 세션기간 유효
}

/* 이용방법 아래의 코드부분을 사이트내 보안로직의 적당한 곳에서 사용*/

$idle = idle(10 * 60);//10분간 세션정보 유효
if ($idle === true) { //만일 세션정보유효기간이 만료되었으면
    print "세션타입 아웃되었습니다!";    
    exit;
}

 

위와 같은 코드를 사용하면 세션유효기간을 임의의로 설정하면서도 서비스를 중지하지 않아도 되며

php.ini 파일을 별도로 편집하지 않아도 됩니다.

 

추천
1

댓글 0개

전체 5,352
개발자팁 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT