Home >Backend Development >PHP Tutorial >页面无动作,5分钟后自动退出系统

页面无动作,5分钟后自动退出系统

WBOY
WBOYOriginal
2016-06-23 14:08:221258browse

我想让登录系统的用户,如果5分钟内没有任何动作,就自动退出系统。请问大家这个怎么解决?
怎么判断页面没有动作 ?


回复讨论(解决方案)

做个checklogin.php页面
在需要判断是否超时的页面里inclde这个页面

session_start();
header("content-type:text/html; charset=utf-8");
//超时时间,单位:秒,这里设为10分钟. 
$timeout=600;  
$now=time(); 
if(($now-$_SESSION['session_time'])>$timeout)
{
//超时了. 
unset($_SESSION['clientID']);   
}
else
{
//还没超时. 
$_SESSION['session_time']=time(); 
}
if(empty($_SESSION["clientID"]))
{
echo "<script>alert('您当前未登录或者登录已超时,请重新登录');window.parent.location.href='../';</script>";
exit;
}

我想让登录系统的用户,如果5分钟内没有任何动作,就自动退出系统。请问大家这个怎么解决?
怎么判断页面没有动作 ? 那么你怎么判断用户登录了?

登录成功的用户,把用户名放到session里,然后就可以看session里面有没有数据,如果没有就执行自动退出系统

做个checklogin.php页面
在需要判断是否超时的页面里inclde这个页面

session_start();
header("content-type:text/html; charset=utf-8");
//超时时间,单位:秒,这里设为10分钟. 
$timeout=600;  
$now=time(); 
if(($now-$_SESSION['session_time'])>$timeout)
{
//超时了. 
unset($_SESSION['clientID']);   
}
else
{
//还没超时. 
$_SESSION['session_time']=time(); 
}
if(empty($_SESSION["clientID"]))
{
echo "<script>alert('您当前未登录或者登录已超时,请重新登录');window.parent.location.href='../';</script>";
exit;
}

---------------------------------------
你这个方法只能手动调用,检测SESSION中设置的时间是否过期。
我想要的是:假如我登陆了系统,会在SESSION中保持一个用户身份ID,当我5分钟内没有执行任何操作,系统会认为我不需要再操作了,就会自动断开连接。
你这样做,10分钟后。无论我是否在操作都会强制删除SESSION,都会推出系统


我想让登录系统的用户,如果5分钟内没有任何动作,就自动退出系统。请问大家这个怎么解决?
怎么判断页面没有动作 ? 那么你怎么判断用户登录了?
-------------------------------
我在登录的时候在COOKIE或者是在SESSION中存个用户ID,我想要实现像phpmyadmin那样,登录后1440秒内没有动作就断开连接。主要是如何判断页面当前没有动作?

连接本身就已经是断开的了

你在COOKIE或者是在SESSION中加一个登录时间变量
他再次访问是判断一下就是了

连接本身就已经是断开的了

你在COOKIE或者是在SESSION中加一个登录时间变量
他再次访问是判断一下就是了
---------
假如我现在停在A页面。我去打个电话,半小时后回来,我再点击A页面上的东西,通过对比SESSION中的时间,来判断是否过期 ?

是的,就这样

是的,就这样
---
版主,加我下QQ 1587232556,我还是有点不明白,想请你给我讲解下。

以 session 为例
登录时
$_SESSION['userid'] = $userid;
$_SESSION['time'] = time();

再次进入时
if(time() - $_SESSION['time'] > 1440) {
  //超时处理
}else{
  $_SESSION['time'] = time();
}

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn