반응형
1. php.ini 수정
session.gc_probability = 100
session.gc_divisor = 100
session.gc_maxlifetime = 5
5초간 서버에 입력이 없는 session을 100%확률로 kill
확률은 gc_probability / gc_divisor
2. unload 방식
그냥 unload에 logout기능을 넣으면 새로고침 할 때도 로그아웃이 됨.
unload 할 때 아래와 같은 함수 추가
function logout_browser_close(){
if(event.clientY<0){
// if(event.clientX < 0 && event.clientY < 0) {
logout();
}
else{
if(document.readyState=="complete"){
//새로고침
}
else if(document.readyState=="loading"){
//다른 페이지 이동
}
}
}
단, event.clientY<0의 조건은 해당 브라우저가 하나도 없을 경우에만 호출이 된다.
즉, 하나의 브라우저에 2개 이상의 창이 떠 있을 때 하나를 닫아도 logout이 되지 않고
하나의 창만 떠 있을 때 닫아야 logout이 된다.
3. submit
3.1 로그인 페이지를 제외한 모든 페이지 직접 접근 차단
3.2 로그인 페이지에 접근 하면 해당 session 로그아웃 처리 후 로그인 페이지 view
3.2 로그인 성공하면 main page로 submit
4.
window.onunload = function myunload(){
if (window.localStorage) {
// flag the page as behing unloading
window.localStorage['myUnloadEventFlag']=new Date().getTime();
}
}
window.onload = function myload(){
if (window.localStorage) {
var t0 = Number(window.localStorage['myUnloadEventFlag']);
if (isNaN(t0)) t0=0;
var t1=new Date().getTime();
var duration=t1-t0;
console.log(t0);
console.log(t1);
console.log(duration);
if (duration<2*1000) {
// less than 10 seconds since the previous Unload event
// => it's a browser reload (so cancel the disconnection request)
console.log("refresh");
}
else {
console.log("new");
}
}
}
728x90
반응형
'기타 언어(C, PHP 등)' 카테고리의 다른 글
php에서 json형태로 데이터 넣기 (0) | 2019.08.23 |
---|---|
php json_encode/json_decode mixed object and array output (0) | 2019.08.23 |
[php] cookie lifetime (expire) (0) | 2019.08.23 |
PHP explode - blank(white) space remove (0) | 2019.08.17 |
PHP json string 형태로 넘어온 데이터 사용하기 (0) | 2019.08.17 |