2013-01-09 2 views
0

PHP 응용 프로그램을 작성하고 사용자 로그인 및 로그 아웃 시간을 txt 파일로 기록합니다. 로그인은 가장 쉬운 부분입니다. 로그 아웃은 약간 까다 롭습니다. 로그 아웃 선택을 선택하여 사용자 세션을 수동으로 종료하면 다시 생각할 필요없이 로그 아웃 시간을 추적 할 수 있습니다. 하지만 브라우저의 탭이나 창을 닫을 때 무엇을 할 수 있습니까? window.onbeforeunload = "foobarA()"window.onunload = "foobarB()"로 이벤트를 감지하려면 js를 사용해야한다고 생각하고 로그 아웃 시간으로 txt를 추적하는 PHP를 트리거합니다. 그러나 브라우저의 창 닫기 효과 만 검사합니다. 사용자가 앱을 실행하고있는 탭을 닫은 후 브라우저를 닫지 않고 몇 시간 동안 인터넷을 재생하거나 서핑을하고 있었다면 로그 아웃 시간을 정확하게 추적 할 수 있습니까?브라우저가 닫힐 때 세션 로그 아웃 시간을 추적하십시오.

+1

수 없습니다. (정확하게 * 어쨌든) – dualed

+0

소멸자를 사용하여 수행 할 수 없습니다. 내가 killarn했을 때 C++ 소멸자는 클래스 인스턴스가 종료 될 때마다 실행됩니다. 나는 그것이 PHP에서 작동하는지 모르겠지만, 당신은 그것을 시도 할 수 있습니다. – Ivan

답변

2

언로드 이벤트는 a) 모든 브라우저에서 처리 할 수있는 것은 아니며 b) 여러 브라우저에서 수행 할 수있는 작업에 대한 제한이 다릅니다. 웹 소켓을 사용하여 서버에서 연결이 닫히는 것을 모니터 할 수 있습니다. 웹 소켓을 지원하지 않는 클라이언트의 경우 AJAX를 사용하여 스크립트에 5 초마다 포스트 백할 수 있습니다. 지난 5 초 동안 요청을받지 못했을 때 "로그 아웃"했습니다.

+1

이것은 일반적으로 하트 비트 *라고도합니다. – hakre

+1

@ hakre 원래 질문의 OP의 표현을 감안할 때, 나는 그/그녀가 "하트 비트"에 익숙하지 않았다고 생각하지 않았다;) –

+1

;) 비평이 아니며, 단지 약간의 추가;) – hakre

관련 문제