// session expiration in milisec
var sess_pollinterval = 60000;
// session valid min
var sess_expirationMinutes = 20;
// warning time min
var sess_warningMinutes = 15;
var sess_intervalID;
var sess_lastActivty;
function initSessionMonitor(){
sess_lastActivty = new Date();
sessSetInterval();
$(document).bind('keypress.session',function(ed,e){sessKeyPressed(ed,e);});
}
function sessSetInterval(){
sess_intervalID = setInterval('sessInterval()',sess_pollinterval);
}
function sessClearInterval(){
clearInterval(sess_intervalID);
}
function sessKeyPressed(ed,e){
sess_lastActivty = new Date();
}
function sessPingServer(){
// call function keep alive
//aliveAjaxFunction();
alert("Oturum kontrolü...");
}
function sessLogOut(){
window.location.href='logout.php';
}
function sessInterval(){
var now = new Date();
var diff = now-sess_lastActivty;
var diffMins = (diff/1000/60);
if(diffMins >= sess_warningMinutes){
//run before expiring
//stop timer
sessClearInterval();
//prompt attention
if(confirm('Oturumunuz sona erecektir'+(sess_expirationMinutes-sess_warningMinutes)+' süre sonra '(''+now.toTimeString()+ '), Tamam a basarak oturumda kalabilirsiniz'+ 'Kapata basarak oturumu sonland?rabilirsiniz. \nlf oturumunuz kapand?')){
now = new Date();
diff = now-sess_lastActivty;
diffMins = (diff/1000/60);
if(diffMins > sess_expirationMinutes){
//timed out
sessLogOut();
}else{
sessPingServer();
sessSetInterval();
sess_lastActivty = new Date();
}
}else{
sessLogOut();
}
}else{
sessPingServer();
}
}
|