当前位置: 首页> 最新文章列表> PHP实现CMS系统用户登录日志功能的完整教程

PHP实现CMS系统用户登录日志功能的完整教程

M66 2025-07-17

创建用户登录日志数据库表

实现用户登录日志功能,首先需要在数据库中创建相应的表,用来存储用户的登录信息。这里以MySQL为例,创建一个名为login_logs的表,包含用户ID、登录IP和登录时间等字段:

CREATE TABLE login_logs (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    ip_address VARCHAR(45),
    login_time DATETIME
);

表结构设计简洁明了,能够有效存储用户每次登录的关键信息。

实现登录日志记录功能

用户登录成功后,需要及时将登录信息写入数据库。下面的PHP函数logLogin示范了如何实现该功能:

// 记录用户登录日志
function logLogin($userId, $ipAddress) {
    // 连接数据库
    $conn = new mysqli("localhost", "username", "password", "database");

    // 获取当前时间
    $loginTime = date('Y-m-d H:i:s', time());

    // 构造SQL语句
    $sql = "INSERT INTO login_logs (user_id, ip_address, login_time)
            VALUES ('$userId', '$ipAddress', '$loginTime')";

    // 执行SQL语句
    $conn->query($sql);

    // 关闭数据库连接
    $conn->close();
}

// 使用示例
$userId = 1;
$ipAddress = $_SERVER["REMOTE_ADDR"]; // 获取当前用户的IP地址
logLogin($userId, $ipAddress);

该函数中,先建立数据库连接,再获取当前系统时间,最后将用户ID、IP地址及登录时间插入日志表,完成登录记录的存储。

查询用户登录日志

为了方便管理员查看用户登录情况,下面的getLoginLogs函数提供了查询指定用户登录日志的功能:

// 查询登录日志
function getLoginLogs($userId) {
    // 连接数据库
    $conn = new mysqli("localhost", "username", "password", "database");

    // 构造SQL语句
    $sql = "SELECT * FROM login_logs WHERE user_id = '$userId'";

    // 执行SQL查询
    $result = $conn->query($sql);

    // 处理查询结果
    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            // 输出日志信息
            echo "ID: " . $row["id"] . "<br>";
            echo "User ID: " . $row["user_id"] . "<br>";
            echo "IP Address: " . $row["ip_address"] . "<br>";
            echo "Login Time: " . $row["login_time"] . "<br><br>";
        }
    } else {
        echo "No login logs found.";
    }

    // 关闭数据库连接
    $conn->close();
}

// 使用示例
$userId = 1;
getLoginLogs($userId);

此函数通过数据库查询,获取指定用户的所有登录记录,并逐条输出,方便管理员进行查看和分析。

总结

通过以上步骤,我们实现了一个基本的用户登录日志功能,包含日志的存储和查询。此功能不仅有助于网站安全管理,还能为后续用户行为分析提供数据支持。开发者可以根据实际需求进一步扩展功能,例如增加日志筛选、导出或统计分析等。