我已经完成了一个应用程序的设计,但是想在5分钟不活动后退出应用程序。
第一页是:
<?php
session_start();
require_once("class.user.php");
$login = new USER();
if($login->is_loggedin()!="")
{
$login->redirect('user.php');
}
?>
这是用户页面:
<?php
require_once("session.php");
require_once("class.user.php");
$auth_user = new USER();
$user_pin = $_SESSION['user_session']; ?>
session.php页面
<?php
session_start();
require_once 'class.user.php';
$session = new USER();
if(!$session->is_loggedin())
{
$session->redirect('index.php');
}
?>
这是课程:
require_once('dbconfig.php');
class USER
{
private $conn;
public function __construct()
{
$database = new Database();
$db = $database->dbConnection();
$this->conn = $db;
}
public function runQuery($sql)
{
$stmt = $this->conn->prepare($sql);
return $stmt;
}
public function is_loggedin()
{
if(isset($_SESSION['user_session']) )
{
return true;
}
}
public function redirect($url)
{
header("Location: $url");
}
public function doLogout()
{
session_destroy();
unset($_SESSION['user_session']);
return true;
}
}
?>
答案 0 :(得分:0)
有多种方法可以实现这一目标:
您可以使用Cookie或带有时间戳的会话进行验证,以验证用户是否在2分钟内未更改分页,并在访问该页面时将其注销。该方法中的Con是用于所有意图和目的的用户仍然被认为是&#34; Online&#34;直到他改变页面。
我首选的方法是使用JQuery和Ajax请求进行池化。 基本上每隔X秒你就会向用户发送一个带有AJAX的请求,看看他是否还在那里并更新他在数据库上的时间戳。然后使用服务器端脚本,如果时间戳达到2分钟差异,则将用户设置为脱机并强制将其注销。
总有websockets,目前我正在使用rachetphp探索此方法,但它允许您实时跟踪连接,这也非常好。
检查此link方法。