【发布时间】:2019-09-30 05:05:20
【问题描述】:
我有一个有多个用户登录的数组。我想注销已经不活动 XX 时间的用户。
让我解释一下情况。我有 1 台电脑,人们可以在其中开始和停止他们的任务。我存储他们的 id,以便他们可以在活动用户之间切换,以非常快速地停止、启动和查看有关其任务的信息。有时会发生很多人只使用这台电脑来开始他们的任务并在另一个工作空间中继续,所以活跃用户的列表会快速增长,而其他人必须在活跃用户的列表之间搜索以找到他们自己的用户 ID。
用户ID列表:
4700、7100 和 2526 是登录/活动的用户 ID。
这是我会话中的数组:
'timestamp' =>
array (size=3)
4700 => int 1557473018
7100 => int 1557472637
2526 => int 1557473020
我发现了很多用户注销脚本,但一切都基于 1 个用户。
它正在使用 PHP,但我希望它能够自动使用 javascript
类似的东西我已经试过了。
<script language='javascript'>
var timeout = 60 * 1000; // 10 seconds
var lastAction = <?php echo isset($_SESSION['timestamp']) ? $_SESSION['timestamp'] : time();?>;
var timer = function(){
return setInterval(function(){
var now = new Date();
if (typeof lastAction !=='undefined' ){
if(now.getTime() - lastAction >= timeout ){
alert('have been logged out');
<?php afmelden($Ids); ?>
}
}
}, 1000) // repeat every 1 second;
}
window.onmousemove = function(e){
clearInterval(timer);
timer();
}
window.onclick= function(e){
clearInterval(timer);
timer();
}
// and make initial call
timer();
</script>
【问题讨论】:
-
好的。那么你的尝试出了什么问题?
-
@ADyson 我让它在 PHP 中工作。当您刷新页面时,它将检查非活动用户。我想自动完成,但我不知道怎么做......这里的脚本不停地给我警报,即使我将计时器设置为 24 小时。
-
我看到了不同之处。 PHP Time() 为:1557739523 Javascript getTime() 为:1557739523400
-
好的,希望您现在意识到如何解决这个问题?
标签: javascript php session