2分钟后自动注销php应用程序

时间:2017-11-16 16:21:55

标签: php

我已经完成了一个应用程序的设计,但是想在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;
}
}
?>

1 个答案:

答案 0 :(得分:0)

有多种方法可以实现这一目标:

您可以使用Cookie或带有时间戳的会话进行验证,以验证用户是否在2分钟内未更改分页,并在访问该页面时将其注销。该方法中的Con是用于所有意图和目的的用户仍然被认为是&#34; Online&#34;直到他改变页面。

我首选的方法是使用JQuery和Ajax请求进行池化。 基本上每隔X秒你就会向用户发送一个带有AJAX的请求,看看他是否还在那里并更新他在数据库上的时间戳。然后使用服务器端脚本,如果时间戳达到2分钟差异,则将用户设置为脱机并强制将其注销。

总有websockets,目前我正在使用rachetphp探索此方法,但它允许您实时跟踪连接,这也非常好。

检查此link方法。