이미 서버 측 시간 초과에 대해 언급했기 때문에 여기 내 대답을 약간 수정하십시오. 당신이 클라이언트 측을 할 수
있는 유일한 방법은 로그 아웃 페이지를 호출입니다 onbeforeunload 이벤트를 사용하는 것입니다 (사용자가 문서에있는 링크를 클릭하지 않은 경우 ..)
불행하게도, 브라우저 뒤로, 앞으로, 새로 고침 버튼을 누르면 로그 아웃이 발생합니다 ...
logout.php (자동 로그 아웃 페이지)를 20-30 초 동안 잠자기 상태로 유지 한 다음 마지막 인상이 30-45 초 미만인지 확인하십시오 로그 아웃하십시오 ...
문서 머리 부분에있는 스크립트 태그에 이것을 추가하고 'logout.php'를 원하는대로 변경하십시오. * 링크 이외의 항목을 사용할 경우 onclick 처리기를 올바르게 추가하려면 window.onload 함수를 편집해야 할 수도 있습니다. dologout 플래그가 true의 경우
var xmlhttp=false; var target; var combo;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } }
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
var dologout = true;
var logouturl = 'logout.php';
window.onbeforeunload = function() {
if (dologout) {
xmlhttp.open("POST", logouturl, true);
xmlhttp.send(null);
}
}
window.onload = function() {
for (i=0;i<document.links.length;i++)
document.links[i].setAttribute("onclick","dologout = false;");
}
는 본질적으로 이것은 단지
... 모든 document.links에 onclick 이벤트를 부착하고 문서 링크를 클릭 한 경우 false로 'dologout'플래그를 변경할 때 onbeforeunload 이벤트가 발생하면 'logouturl'/ 'logout.php'에 게시물을 보냅니다 ...
자바 스크립트로 브라우저 닫힘 이벤트를 기록 할 수 있습니다. 브라우저가 실제로 닫히기 전에 db 항목을 쓸 스크립트를 요청하십시오. 그러나 이것은 정말로 훌륭하고 완벽하게 호환되는 해결책이 아닙니다. 또 다른 방법은 제한 시간을 정의하고 cronjob ('session timeout'긴 간격으로 실행)을 만들어 닫힌 세션 로그로 db를 업데이트하는 것입니다. –