php - 如何在不单击 PHP 中的注销按钮的情况下自动注销时跟踪注销时间(结束会话时间或强制关闭浏览器的选项卡/窗口)
问题描述
我想询问关闭会话时的注销跟踪,而用户没有明确的注销按钮操作。
以下是登录操作期间使用的代码,它将在表中创建一个新行,其中包含 track_log_user
valueusername
和。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
andlogout_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");
?>
我的问题是如何跟踪客户端是否空闲或强制关闭窗口/选项卡,以便他们的会话自动结束并注销?
我的用户登录和注销日期时间跟踪系统将如何工作?我正在每月报告有多少客户/客户访问和使用我们的网站。
请给我一个代码建议
谢谢你。
解决方案
推荐阅读
- json - 在 Angular > 10 中显示来自 JSON 的单个节点
- c - 如何在单个可执行文件中构建具有多个 Linux 实用程序的软件?
- python - 如何为python的虚拟环境设置特定的python版本?
- date - gql的Apollo Payload上的错误未知类型“DateTime”
- sql - 如果主键在第二个表内,则更改行
- ruby-on-rails - Azure mac 托管代理:安装 gem install ,下载旧版本 gem
- python - Selenium 不渲染 html 页面源
- c++ - 将计算机置于睡眠模式然后再次恢复后,Windows 服务会发生什么情况?
- python - 将字符串转换为已经存在的变量(熊猫)
- salesforce - 从 Salesforce 应用程序获取/识别表单数据的问题