要實現(xiàn)用戶在線狀態(tài)檢測的功能,您可以使用以下方法:
- 在用戶登錄時,將其登錄時間存儲到數(shù)據(jù)庫中,并設(shè)置一個過期時間(例如,30分鐘)。這將標(biāo)記用戶為在線狀態(tài)。
- 在每個頁面的頂部添加一個PHP腳本,該腳本檢查當(dāng)前用戶的最后活動時間是否超過了過期時間。如果超過,則將用戶標(biāo)記為離線狀態(tài)。
下面是一個基本的PHP腳本,可以用來實現(xiàn)此功能:
<?php
// 檢查用戶是否登錄
if (isset($_SESSION['user_id'])) {
$user_id = $_SESSION['user_id'];
// 連接數(shù)據(jù)庫
$db_host = "localhost";
$db_user = "root";
$db_password = "";
$db_name = "mydatabase";
$conn = mysqli_connect($db_host, $db_user, $db_password, $db_name);
// 檢查用戶的最后活動時間
$sql = "SELECT last_activity FROM users WHERE id='$user_id'";
$result = mysqli_query($conn, $sql);
if ($result && mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result);
$last_activity = $row['last_activity'];
// 檢查是否超過過期時間
if (time() - strtotime($last_activity) > 1800) {
// 標(biāo)記用戶為離線狀態(tài)
$sql = "UPDATE users SET is_online=0 WHERE id='$user_id'";
mysqli_query($conn, $sql);
} else {
// 更新用戶的最后活動時間
$sql = "UPDATE users SET last_activity=NOW() WHERE id='$user_id'";
mysqli_query($conn, $sql);
}
}
// 關(guān)閉數(shù)據(jù)庫連接
mysqli_close($conn);
}
?>
請注意,這只是一個基本的示例腳本。您可能需要根據(jù)自己的具體需求對其進(jìn)行修改和定制。例如,您可能需要添加更多的錯誤檢查和安全性檢查,以確保您的應(yīng)用程序不會受到任何攻擊。