2012-04-03 4 views
0

저는 CodeIgniter에 익숙하지 않지만 프로가 아닙니다. 익숙해지고 있습니다. 세션 라이브러리가 비활성 세션을 종료 할 때 세션 시간이 초과되었다는 메시지를 표시하는 방법에 대한 아이디어가 있는지 궁금합니다.Codeigniter 세션 타임 아웃 메시지

나는 Session.php 라이브러리를 확장하고 추가 시도했다 :

// Is the session current? 
    if (($session['last_activity'] + $this->sess_expiration) < $this->now) 
    { 
     $this->sess_destroy(); 
     $this->set_flashdata('timeout_message', "Session Timed Out."); // <--added 
     return FALSE; 
    } 

그러나 FALSE가 반환되고 내 컨트롤러가 플래시 메시지가 표시됩니다 페이지로 리디렉션 할 때 내 생각은 ... 플래시 데이터는 문질러 지우는.

아이디어가 있으십니까?

+1

세션 함수를 삭제 한 후에 세션 함수를 사용하려고합니다. –

+0

흠. 생각하지 않았어. 당신은 내가 사용할 수 있다고 생각 :'$ this-> sess_create()'다음에 set_flashdata 메소드가 올 것인가? – WhiskeyMike

+0

시도해보십시오. 그러나 그것은 세션을 파괴하려는 목적을 이깁니다. –

답변

0

나는 이것에 대해 약간 다른 방식으로 가야한다고 생각합니다. 기본 컨트롤러를 가지고 있다고 가정하면 몇 가지 기본 사항을 실행하기 위해 다른 모든 것들이 상속됩니다. 그런 다음 당신이 가지고있는 버전의 메서드를 추가 할 수 있습니다. 사용자가 새 페이지를 요청할 때마다 위의 확인을 실행하기 만하면됩니다. 실패하면 현재 세션을 삭제하거나 로그 아웃 메소드를 실행하여 새 세션을 시작하고 flashdata 메시지를 설정 한 다음 원하는 위치로 다시 리디렉션 할 수 있습니다. 이것은 당연히 새로운 세션을 시작할 것입니다. 그러나 사용자가 로그 아웃되고 모든 중요한 세션 데이터가 손실되면 확실히 확인됩니다.

관련 문제