2011-10-31 11 views
0

그래서 내 응용 프로그램에서 세션의 TTL을 제한했습니다. 사용자가 로그인해야하는 페이지를 요청할 때 로그인 페이지로 자동 전환되지 않고 더 이상 아무 것도 할 수 없습니다.만료 된 세션 감지

하지만 사용자에게 친숙하지 않습니다 정말. 사용자는 사전 통지 나 발생 이유에 대한 설명없이 로그인 페이지로 전달됩니다.

사용자에게 로그인 페이지의 메시지로 알림을 보내고 비활성 상태로 인해 요청이 종료되었으며 다시 로그인해야한다는 사실을 알려드립니다. 그러면 이것을 해결할 수있는 적절한 방법은 무엇일까요?

+1

"login.php? why = 1"과 같은 get 매개 변수 다음에 로그인 페이지로 간단하게 리디렉션 할 수 있습니다. 그런 다음 이유에 따라 메시지를 작성하십시오. 이것이 당신이 요구하는 것이라면. –

답변

1

PHP 자동 만료 세션은 .ini 파일에 지정된 probability settings/intervals을 기반으로 "코드가 실제로 실행되기 전에"시작의 일부입니다. 이것은 자동으로 귀하의 권한 밖에서 실행됩니다. 만료 된 세션을 제어 (또는 추적)해야하는 경우 PHP 가비지 수집기를 비활성화하고 직접 롤백해야합니다. 만료 된 세션 및 제거를 위해 주기적으로 세션 저장 매체 (파일, 데이터베이스, oija 보드 등)를 검사해야합니다.

더 나은 옵션은 단순히 오래 지속되는 세션 파일을 가지고 세션에 마지막 액세스 시간을 어떻게 든 기록하는 것입니다. "마지막으로 무언가를한지 XXX 분이 지났습니다. 확인 했습니까?"또는 "로그인 한 후 XXX 분이 지났습니다."등 ...

이렇게하면 자신을 굴리지 않아도됩니다. 세션 만료 처리기를 사용하고 여전히 사용자를 "로그인"상태로두고 상태를 확인하기 만하면됩니다.