我想讓每個用戶的lastonline時間,然後檢查現在時間減去他們上次在線時間是否小於600秒後他們上次登錄。PHP獲取所有用戶數據並檢查lastonline每個
我做了一些有用的代碼,但不是我想要的。 我想讓它獲得每個用戶的信息。出於某種原因,這段代碼非常確定地根據1個用戶更新每個用戶的信息。當我將我的代碼中小於號的符號更改爲大於號時,它們都會隨之更改 - 儘管我的用戶上次在線時間爲1分鐘前。
我的代碼:
<?php
$user_grab = mysqli_query($con, "SELECT * FROM users");
while($users_ = mysqli_fetch_array($user_grab)) {
foreach($users as $user) {
$last_online = $users_['lastonline'];
if(time() - $last_online < user_session_timeout()) {
echo '
<div class="chat-list-item -available" style="background: rgba(255,255,255,0.1);">
<img class="chat-list-avatar" src="'.$users_['profile_picture'].'"/><i class="fa fa-circle chat-list-status"> </i>
<div class="chat-list-user">'.$users_['username'].'</div>
<div class="chat-list-excerpt">Online</div>
</div>
';
} else {
echo '
<div class="chat-list-item -offline" style="background: rgba(255,255,255,0.1); padding: 5px;">
<img class="chat-list-avatar" src="'.$users_['profile_picture'].'"/><i class="fa fa-circle chat-list-status"> </i>
<div class="chat-list-user">'.$users_['username'].'</div>
<div class="chat-list-excerpt">Offline</div>
</div>
';
}
}
}
?>
我user_session_timeout只是讀取用戶並沒有改變頁面,直到用戶應該被重定向
代碼user_session_timeout():
function user_session_timeout() {
global $con;
$grab_user_timeout_sql = mysqli_query($con, "SELECT user_session_timeout FROM sitesettings");
$row = mysqli_fetch_array($grab_user_timeout_sql);
return $row['user_session_timeout'];
}
圖片的時候我用戶全部離線顯示
證明,每一個用戶最後一次上線時間是不同的
'user_session_timeout()'至少聽起來像是與當前用戶有關。它有什麼作用? – colburton
@colburton我剛剛更新了我的問題。它只是從我的數據庫讀取600秒作爲整數。 – Benza
您的'foreach'循環從不使用'$ user'做任何事情。你爲什麼在那裏循環? – Barmar