让用户登录到期的最佳方式是什么?

时间:2013-01-26 05:08:32

标签: php javascript login timeout

我正在探索一个潜在的内部内容传送系统,我们必须跟踪学生的任务时间。只要学生与页面进行交互,就没有问题。如果学生外出吃午饭而页面打开,会话应该超时,他们将不会在超时后的在线时间获得奖励。

我已经知道我可以轻松捕获诸如导航离开页面并使用PHP将这一事实记录到学生的MySQL记录中的事件,但是为学生计时的最佳方式是什么? JavaScript的?我环顾四周,还没有找到一个好的解释。

感谢您的帮助!

----------编辑--------------

在Floris关于查看关于闲置的特定帖子的建议之后,大多数建议使用JQuery解决方案,但是一张海报有一个没有JQuery的简单解决方案。这段代码看起来会起作用吗?它看起来很好:

var inactivityTime = function () {
    var t;
    window.onload = resetTimer;
    document.onmousemove = resetTimer;
    document.onkeypress = resetTimer;

    function logout() {
        alert("You are now logged out.")
        //location.href = 'logout.php'
    }

    function resetTimer() {
        clearTimeout(t);
        t = setTimeout(logout, 3000)
        // 1000 milisec = 1 sec
    }
};

2 个答案:

答案 0 :(得分:0)

使用JavaScript检测用户何时空闲。当用户空闲时,会触发一个AJAX呼叫,该呼叫会消除任何cookie或会话数据。

答案 1 :(得分:0)

如果您让浏览器执行此操作,学生可以轻松伪造它。相反,只要用户执行某项操作(比如转到其他页面),我就会将其转换为日志。时间花费是动作与下一个动作之间的时间总和(增量时间),但如果增量时间大于15分钟则排除。