倒数计时器达到0后会话销毁

时间:2017-09-07 06:25:03

标签: javascript php jquery ajax session

如果用户在2小时内处于非活动状态,则使用倒计时器用于注销用户。

Firefox

因为我不能在jquery函数上调用session destroy我使用ajax来发出请求..

Geckodriver - 13

但是会发生什么,它在发出请求后不会调用会话销毁功能。它运行function Timer(duration, display) { var timer = duration, hours, minutes, seconds; setInterval(function () { hours = parseInt((timer /3600)%24, 10) minutes = parseInt((timer / 60)%60, 10) seconds = parseInt(timer % 60, 10); hours = hours < 10 ? "0" + hours : hours; minutes = minutes < 10 ? "0" + minutes : minutes; seconds = seconds < 10 ? "0" + seconds : seconds; display.text(hours +":"+minutes + ":" + seconds); if(hours == 0 && minutes == 0 && seconds == 0){ $.ajax({ url:'../ajax/logoutuser.php', success: function(data){ console.log('logout'); } }); }else{ --timer; } }, 1000); } window.onload = function () { var twentyFourHours = 1 * 1 * 3; var display = $('#time'); Timer(twentyFourHours, display); }; 内部成功函数..

有没有办法在2小时内停用用户

2 个答案:

答案 0 :(得分:2)

你可以通过php方式实现。像

这样的东西
$expiry = 1800 ;//session expiry required after 30 mins
if (isset($_SESSION['LAST']) && (time() - $_SESSION['LAST'] > $expiry)) {
    session_unset();
    session_destroy();
}
$_SESSION['LAST'] = time();

答案 1 :(得分:1)

而不是来自php文件的echo脚本,取而代之的是ajax代码的成功函数

success: function(data){
         console.log('logout');
         window.location.href = '../index.php';
}