Ich möchte ein Stück Code erstellen, der überprüft, ob ein einzelner Benutzer online ist.PHP/AJAX Benutzer zuletzt online überprüfen
Ich habe einen netten Stil, der einen grünen Online-Kreis anzeigen kann, wenn der Benutzer online ist.
ich den Code habe diese Funktion für PHP zu machen, aber ich mag es in Echtzeit (ohne die Seite zu aktualisieren, ändern Sie das Symbol Benutzer auf einen grauen Kreis zur Verfügung stellen, wann sie sind offline oder ein grüner Kreis für wenn sie online sind) vielleicht mit AJAX. Wie ich schon sagte, ich habe die Klassen um die Kreise zu zeigen, also brauche ich kein Styling. Nur der AJAX, um zu überprüfen, ob sie ohne eine Aktualisierung online sind.
Ich habe auch ein Stück Code, der überprüft, wie viele Clients online sind ohne eine Aktualisierung und funktioniert, aber ich bin mir nicht sicher, wie man das in den einzelnen Clients Zeiten zu machen. Ich werde meine beiden Codes unten veröffentlichen.
Meine PHP arbeiten, aber ohne AJAX-Code (benötigter Laden der Seite für den Benutzerstatus ändern):
<?php
$user_grab = mysqli_query($con, "SELECT * FROM users");
while($users_ = mysqli_fetch_array($user_grab)) {
$last_online = strtotime($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'].' (<font size="2">'.get_users_level_all($users_['userLevel']).'</font>)</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'].' (<font size="2">'.get_users_level_all($users_['userLevel']).'</font>)</div>
<div class="chat-list-excerpt">Offline</div>
</div>
';
}
}
?>
`
Ich habe einig PHP-Code, der funktioniert (es den aktuellen Online-Benutzer bekommt), aber Ich weiß nicht, wie man den Online-Status jedes Benutzers überprüfen und verschiedene Klassen anzeigen kann, wenn sie online oder offline sind.
Der Code:
$session = session_id();
$time = time();
$time_check = $time - 300; //We Have Set Time 5 Minutes
$sql = "SELECT * FROM online_users WHERE session = '$session'";
$result = mysqli_query($con, $sql);
$count = mysqli_num_rows($result);
//If count is 0 , then enter the values
if($count == "0") {
$sql1 = "INSERT INTO online_users(session, time) VALUES ('$session', '$time')";
$result1 = mysqli_query($con, $sql1);
}
// else update the values
else {
$sql2 = "UPDATE online_users SET time = '$time' WHERE session = '$session'";
$result2 = mysqli_query($con, $sql2);
}
$sql3 = "SELECT * FROM online_users";
$result3 = mysqli_query($con, $sql3);
$count_user_online = mysqli_num_rows($result3);
echo "<b>Users Online : </b> $count_user_online ";
// after 5 minutes, session will be deleted
$sql4 = "DELETE FROM online_users WHERE time < $time_check";
$result4 = mysqli_query($con, $sql4);
Ich habe nur AJAX für die Online-Nutzer, die sich jetzt zu bekommen. mag ich ein Stück AJAX-Code, der von jedem Benutzer Online-Status überprüfen und die verschiedenen Online-/Offline-Klassen I zeigt im oberen Abschnitt Code dieser Frage verwenden:
Meine AJAX für das Erhalten Online-Kunden:
<script>
function fetchOnline() {
$.ajax({
url: "includes/get_dash_settings.php",
context: document.body,
success: function(value){
var data = value.split(",");
$('#totalUsers').html(data[0]);
$('#totalOnline').html(data[1]);
$('#freeModeStatus').html(data[2]);
$('#bypassesStatus').html(data[3]);
},
complete:function(){
setTimeout(fetchOnline,5000);
}
})
}
$(document).ready(function() { setInterval(fetchOnline,5000); });
</script>
gut, wie würden Sie wissen, wenn sie online sind? In der Regel raten Webseiten nur nach der Zeit seit einer Verbindung. –
@GarrGodfrey Der zweite Code, den ich gepostet habe, funktioniert perfekt. Es aktualisiert, fügt ein und löscht Felder in meiner Tabelle, die online_clients genannt werden.Ich muss nur einige, wie es jeden Kunden Online-Status einzeln lesen lassen. – Benza
Können Sie den AJAX-Code posten, den Sie verwenden möchten? – Difster