在php中无效15分钟后自动注销

Pra*_*att 20 php

如果用户没有在网站上进行任何类型的活动,我想要销毁会话.此时5个用户自动重定向索引页面.这怎么可能?可以在php中进行会话处理,为此我必须维护或更新用户登录时间.

Y U*_*ORK 51

满容易:

 if(time() - $_SESSION['timestamp'] > 900) { //subtract new timestamp from the old one
    echo"<script>alert('15 Minutes over!');</script>";
    unset($_SESSION['username'], $_SESSION['password'], $_SESSION['timestamp']);
    $_SESSION['logged_in'] = false;
    header("Location: " . index.php); //redirect to index.php
    exit;
} else {
    $_SESSION['timestamp'] = time(); //set new timestamp
}
Run Code Online (Sandbox Code Playgroud)

  • 如果用户没有导航到任何页面,这怎么能工作?要执行PHP代码,必须有服务器请求.如果客户端在没有请求时应该超时并重定向,则只能通过JavaScript完成... (5认同)
  • 没问题,这应该可行,也许您必须调整一些变量,我不知道您使用什么,但总的来说,这正是您想要的。 (2认同)
  • @YUNOWORK你是什么意思为什么我会在用户不做某事时注销?除非您可以访问网络摄像头并准确监控坐在电脑前的人,否则无法区分_“人离开电脑而没有退出”_和_“人坐在电脑前无所事事” “_。因此,如果网站空闲并且此人没有触发任何请求(因此 - 用户没有做任何事情),只需注销即可。银行网站一直这样做。几分钟的站点内不活动并且会话被注销 - 无论我在哪里。 (2认同)

小智 15

我从Sitepoint.com获得了这个解决方案,在你的html中使用了一个简单的元标记

<meta http-equiv="refresh" content="900;url=logout.php" />
Run Code Online (Sandbox Code Playgroud)

900是您希望会话在非活动状态下终止的时间(以秒为单位).

希望这对你有用

  • 即使您正在使用该页面,这也会使您退出。 (3认同)