各ユーザーの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():
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だけのユーザーがページを変更していない時間を読み込み、ユーザー全員オフライン表示
各ユーザーが最後のオンライン時間が
'user_session_timeout()'は、少なくとも現在のユーザーと関係があると思われます。それは何をするためのものか? – colburton
@colburton私はちょうど私の質問を更新しました。それはちょうど私のデータベースから整数として600秒を読みます。 – Benza
あなたの 'foreach'ループは何にも' $ user'を使用しません。なぜあなたはそこにループしていますか? – Barmar