我想询问有关会话关闭时的注销跟踪,而无需用户明确注销按钮的操作。
以下是“登录”操作期间使用的代码,它将在track_log_user
表中创建一个值为username
,login_date
和login_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_date
和logout_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");
?>
我的问题是如何跟踪客户端是否空闲或强制关闭窗口/选项卡,以便他们的会话自动结束并注销?
我的用户登录和注销日期时间跟踪系统将如何工作? 我每月都会报告有多少客户/客户访问和使用我们的网站。
请给我一个建议的密码
谢谢。