初学php,想问一下,通过session判断用户5分钟没有操作之后,在点击页面的任何按钮或者别的东西,就提示需要重新登录,怎么做呢。我百度到的想法是,登录的时候记录一个时间,然后在页面操作的时候再记录一下时间,再用这两个时间去比对,如果超过了就提示。但是应该怎么获取页面最后操作的时间呢。我的部分代码
在登录成功后页面记录一个登录的时间保存在session里面
<?php
session_start();
$_SESSION['login_time']=mktime();
?>
登录成功之后到另外的页面:
判断:
<?php
session_start();
$online_time=mktime();
if($online_time-$_SESSION['login_time']>10){
echo '<script>alert("操作超时,请重新登录再操作")</script>';
}
else{
$_SESSION['login_time']=mktime();
echo '<script>alert("'.$_SESSION['login_time'].'");</script>';
}
?>
这样写,只有我按F5刷新之后,才会生效,我现在想要实现的就是,点击页面的各种按钮,或者点击text文本框,也就是如果超时了,那么所有的操作都要提示需要重现登陆才能操作。哪位大神帮下。非常感谢
// 然后在判断上一次触发时间和本次触发时间的间隔是否超过5分钟就可以了
// 如下
document.addEventListener('click',function(){
var now = new Date().getTime();
window.$lastOpTime = window.$lastOpTime || now;
if(now-window.$lastOpTime > 5*60*1000){
alert('超时');
// do client
// do server
}
window.$lastOpTime = now;
console.log(now);
});
比如你的input 框 加个onfocus事件 调用加的JS追问
那如果是点击的a标记呢?这样不就是还得写一个?如果有无数个A标记,很多个button,那不累死啦
追答鼠标点击和键盘事件
比如你的input 框 加个onfocus事件 调用加的JS
AJAX是可以啊,但是怎么捕捉页面的动作啊,总不能点击连接写一次,点击按钮也写一次,这样太笼统了把
追答没必要那么麻烦,你如果真要实现这样的效果,你就扑捉鼠标左键的事件,如果鼠标左键点击了一下就判断一次
追问嗯,貌似是一个思路,但是怎么觉得不够严谨呢,先4一下先,或者还有什么别的方式呢?