2012-02-10 5 views
2

이것이 가능한지 모르겠습니다. 내가 찾고있는 것은 그 세션이 끝날 때 시작하는 이벤트 (있는 경우)입니다. 어떻게 든 세션을 끝내기 전에 저 자신의 행동을 바로 잡고 싶습니다. 그 이유는 세션이 만료 되 자마자 잃게 될 세션 변수 중 하나를 필요로하기 때문입니다.세션 종료 시점을 감지하는 방법. PHP

아마도 이것이 가능한 경우에도 내 목표를 달성하기에 좋지 않은 방법이라고 생각합니다. 오후 7시에 여전히 사무실에 있습니다. 내 흥분이 해결책을 찾고자하는 것을 상상해보십시오.

감사합니다.

+1

자신을 진술하면 자신의 목표를 달성하기가 힘듭니다. 목표가 실제로 무엇인지를 조금 확장 할 수 있습니까? – Leigh

답변

0

당신은 쿠키에 데이터를 저장하고 유효 기간을 제어 할 수 있습니다 :

setcookie("TestCookie", $value, time()+3600); /* expire in 1 hour */ 

http://php.net/manual/en/function.setcookie.php

당신이 정규 세션 기능을 변경하고 제대로 만료 할 수 있도록 할 필요가 없습니다이 방법을.

+0

나는 이것이 최선의 해결책이라고 생각한다. 감사. –

1

데이터베이스 액세스 권한이있는 경우 세션 정보를 세션 테이블에 저장하고 해당 특정 사용자가 등록한 마지막 세션에서 해당 변수를 검색 할 수 있습니다.

내가 아는 한, 세션 종료 직전에 이벤트가 작동하도록 보장하는 확실한 방법은 없습니다. 취성있는 해킹이 아닌 데이터 처리 방법을 재구성하는 것이 가장 좋습니다.

2

데이터베이스를 사용하기 위해 자체 세션 저장 처리기를 만드는 경우 데이터를 삭제하기 전에 적절한 데이터를 가져 오는 데 사용할 수있는 가비지 수집을위한 콜백을 가질 수 있습니다.

session_set_save_handler, 특히 gc 콜백을 참조하십시오.

0

Javascript로 정렬 할 수 있습니다. 세션이 만료 될 때까지 잠자기 상태가되는 JS 기능을 서버에 제공하십시오.

그러나 이것은 사용자가 페이지를 떠나면 거친 쿠키가 아니라 더 이상 JS를 실행하지 않는 것을 방지합니다. 물론 세션이 만료 될 때 어떤 말을 하든지 연락 할 수는 없습니다 ...

실제로 데이터를 제거하기 전에 세션이 "만료되었습니다" 핸들러는 사용자에게 경고하고 유예 기간을 제공합니다. 파괴 핸들러가 두 번째로 트리거되면 실제로 데이터를 제거합니다.

0

기술적으로 PHP가 저장 한 세션 (서버 측 쿠키와 마찬가지로 세션)이 종료되는 시점을 알 수 없습니다. PHP 설정에서 쿠키가 얼마나 오랫동안 지속되어야 하는지를 말할 수 있지만 설정 시간보다 오래 지속될 수 있습니다.

얼마나 오래 지속되는지 추적해야하는 경우 PHP를 사용하지 않고 수동으로 세션 관리 시스템을 구축해야합니다.

관련 문제