标题:《PHP实现实时在线人数监控:简易Demo教程详解》
随着互联网的快速发展,实时在线人数监控已经成为许多网站和应用程序的重要功能之一。它可以帮助网站管理员了解用户行为,优化网站性能,提升用户体验。本文将详细介绍如何使用PHP技术实现一个简易的实时在线人数监控Demo,帮助读者快速上手。
一、准备工作
-
环境搭建:确保你的计算机上已安装PHP环境,并开启session支持。
-
数据库:本Demo使用MySQL数据库存储在线用户信息。请提前创建一个数据库,并创建一个名为
online_users
的表,表结构如下:
SQL
CREATE TABLE online_users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
last_active TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
二、代码实现
- 创建一个名为
index.php
的文件,用于展示实时在线人数。
PHP
<?php
session_start();
// 连接数据库
$mysqli = new mysqli('localhost', 'root', 'password', 'database_name');
// 查询在线用户数量
$result = $mysqli->query("SELECT COUNT(*) FROM online_users WHERE last_active > DATE_SUB(NOW(), INTERVAL 5 MINUTE)");
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
$online_users = $row['COUNT(*)'];
} else {
$online_users = 0;
}
// 显示在线用户数量
echo "当前在线人数:{$online_users}";
?>
- 创建一个名为
online.php
的文件,用于记录用户登录和退出。
PHP
<?php
session_start();
// 连接数据库
$mysqli = new mysqli('localhost', 'root', 'password', 'database_name');
// 获取用户名
$username = $_SESSION['username'];
// 判断用户是否已登录
if (!isset($username)) {
// 用户未登录,记录登录信息
$mysqli->query("INSERT INTO online_users (username) VALUES ('$username')");
$_SESSION['username'] = $username;
} else {
// 用户已登录,更新最后活跃时间
$mysqli->query("UPDATE online_users SET last_active = NOW() WHERE username = '$username'");
}
// 关闭数据库连接
$mysqli->close();
?>
- 创建一个名为
logout.php
的文件,用于记录用户退出。
PHP
<?php
session_start();
// 连接数据库
$mysqli = new mysqli('localhost', 'root', 'password', 'database_name');
// 获取用户名
$username = $_SESSION['username'];
// 判断用户是否已登录
if (isset($username)) {
// 用户已登录,记录退出信息
$mysqli->query("DELETE FROM online_users WHERE username = '$username'");
unset($_SESSION['username']);
}
// 关闭数据库连接
$mysqli->close();
?>
三、页面展示
- 在
index.php
页面中,你可以使用JavaScript定时器每隔5分钟刷新在线用户数量。
JavaScript
setInterval(function() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
document.getElementById('online-users').innerHTML = xhr.responseText;
}
};
xhr.open('GET', 'index.php', true);
xhr.send();
}, 300000);
- 将
online.php
和logout.php
链接到你的网站导航栏或登录/登出按钮。
四、总结
本文通过PHP技术实现了一个简易的实时在线人数监控Demo。读者可以根据自己的需求进行扩展,例如添加用户权限、统计在线时间段等。希望本文对您有所帮助。
转载请注明来自安平县港泽丝网制造有限公司,本文标题:《《PHP实现实时在线人数监控:简易Demo教程详解》》
百度分享代码,如果开启HTTPS请参考李洋个人博客