如何在不单击PHP中的“注销”按钮的情况下自动注销时跟踪注销时间(结束会话时间或强制关闭浏览器的选项卡/窗口)

时间:2018-09-01 07:08:35

标签: php mysql

我想询问有关会话关闭时的注销跟踪,而无需用户明确注销按钮的操作。

以下是“登录”操作期间使用的代码,它将在track_log_user表中创建一个值为usernamelogin_datelogin_hour的新行。

<?php 
    require_once ('connections.php');
    // the login validation page 

    $the_username = $_POST['the_username'];
    $the_password = $_POST['the_password'];

    $login_date = date("Y-m-d");
    $login_time = date("H:i:s");

    $query = mysqli_query($conn,"SELECT * 
                                 FROM tbl_user 
                                 WHERE usr = '$the_username' AND 
                                       pwd = '$the_password'");
    $result = mysqli_num_rows($query);


    if ($result > 1) {
        $fetch = mysqli_fetch_assoc($query);
        $_SESSION['the_username'] = $fetch['usr'];
        $_SESSION['the_password'] = $fetch['pwd'];
        mysqli_query($conn,"INSERT INTO track_log_user(`id`,`username`,`login_date`,`login_time`,`logout_date`,`logout_time`) VALUES (NULL,`$_SESSION[the_username]`,'$login_date','$login_time','','')");
        header("location:my_menu.php");
    }
    else {
        echo "Your Login Is Incorrect";
        header("location:index.php");
    }

  ?>

以下是代码,该代码将由用户执行“注销按钮”操作。它将使用logout_datelogout_time值填充之前的登录跟踪时间。

<?php
require_once ('connections.php');
// this is logout page when user click button logout in system page

session_start();
$time = date("H:i:s");
$date = date("Y-m-d");
mysqli_query($conn, "UPDATE track_log_user SET logout_date = '$date' AND logout_time = '$time' WHERE username = '$_SESSION[the_username]'");
$_SESSION = NULL;
$_SESSION = [];
session_unset();
session_destroy();
header("location:index.php");
?>

我的问题是如何跟踪客户端是否空闲或强制关闭窗口/选项卡,以便他们的会话自动结束并注销?

我的用户登录和注销日期时间跟踪系统将如何工作? 我每月都会报告有多少客户/客户访问和使用我们的网站。

请给我一个建议的密码

谢谢。

0 个答案:

没有答案