Hallo
Ich bastel momentan an einer User-Online-Anzeige und es funktioniert auch fast. Es zeigt an, welche User Online sind und welche net. Nur funktioniert das Auto-Ausloggen nicht.
Ich habe eine Spalte "LastAction" in der Datenbank vom Typ "Timestamp". Diese wird nur leider nicht aktualisiert. Es wird immer der Wert "000000000000" eingetragen.
Hier mein Script:
Ich finde den Fehler leider nicht. Vielleicht habe ich auch grundlegende Fehler gemacht.
Vielen Dank für eure Hilfe.
Ich bastel momentan an einer User-Online-Anzeige und es funktioniert auch fast. Es zeigt an, welche User Online sind und welche net. Nur funktioniert das Auto-Ausloggen nicht.
Ich habe eine Spalte "LastAction" in der Datenbank vom Typ "Timestamp". Diese wird nur leider nicht aktualisiert. Es wird immer der Wert "000000000000" eingetragen.
Hier mein Script:
PHP:
<?php
// ... Uhrzeit und Dauer des "Online-Limits" bestimmen
$zeit2 = time();
$onlinedauer = 5*60;
$online = $zeit2 - $onlinedauer;
// ... Verbindung zur MySQL-Datenbank herstellen ... \\
mysql_connect($host,$user,$pw) OR die(mysql_error());
mysql_select_db($db) or die(mysql_error());
// ... Wenn der User eingeloggt ist -> LastAction updaten ... \\
if(isset($_SESSION['nick'])) {
$nick = $_SESSION['nick'];
$update_action = "UPDATE user SET LastAction = '$zeit2', Status = 'Online' WHERE Nick = '$nick' ";
$update2_action = mysql_query($update_action) or die (mysql_error());
}
// ... Datenbank Abfrage ... \\
$query = "SELECT * FROM user";
$result = mysql_query($query) OR die(mysql_error());
// ... Für jeden User ... \\
while($row = mysql_fetch_assoc($result)) {
$nick2 = $row['Nick'];
$laction = $row['LastAction'];
// ... Wenn die Letzte Aktion länger her ist, als das Limit erlaubt -> User Offline setzen ... \\
if($laction >= $online) {
$update = "UPDATE user SET Status = 'Offline' WHERE Nick = '$nick2' ";
$update2 = mysql_query($update) or die (mysql_error());
}
}
?>
Ich finde den Fehler leider nicht. Vielleicht habe ich auch grundlegende Fehler gemacht.
Vielen Dank für eure Hilfe.