Ehrlich gesagt...nein xD
Weil wie gesagt, wenn du time() + 300 rechnest, verfälscht das das ganze Ergebnis
Ich habs mal ausprobiert, time() so ausgegeben und time() + 300
Bei Time+300 wurde sekündlich das DATUM geändert!
Was daran liegt, das time() so 'ne komisch formatierte Zahl ausgibt.
EDIT:
Übrigens bei mir t das alles wunderbar o.o
Das ganze arbeitet mit mehreren Scripten und einer Datenbank.
Beim Einloggen wird eine Variable auf TRUE gesetzt, "SESSION COUNT" zählt alle Tabelleneinträge, bei denen die Variable "logge
din" TRUE ist und gibt somit die Anzahl eingeloggter User an.
Eine while Schleife gibt die Benutzernamen aus.
(beispiel:
2 User Online:
-Hans
-Wurst)
Nach jedem erneuten seitenaufruf wird beim eingeloggten User in der Datenbank die variable "lastaction" aktualisiert (auf NOW() gestellt).
Ein weiteres Script prüft ob "lastaction" keinen größeren unterschied als 30 minuten zur momentanen uhrzeit aufweist, falls doch wird "loggedin" wieder auf 0 gesetzt, der User ist ausgeloggt
(Das letzte Script wird benötigt, falls sich leute nicht ausloggen, sondern einfach das Browserfenster schließen oder den PC ausschalten).
Jetzt wird noch was in der login.php benötigt:
Und zwar eine überprüfung der IP.
Sollte der User nämlich seine Session's löschen, so ist dennoch für 30min sein Account online, heißt > beim Einloggen die fehlermeldung "User bereits eingeloggt" also benötigen wir eine IP Überprüfung.
Ist die überprüfte IP ($_SERVER['REMOTE_ADDR']
die gleiche, wie die, die beim Login in der Datenbank gespeichert wurde (muss also auchnoch in die Login.php), so kann man davon ausgehen > es ist der gleiche User = login erfolgreich! andererseits > andere Person = login ungültig!
Ehm...die ganzen PHP Codes dafür findest du im letzten beitrag von mir hier
http://www.tutorials.de/forum/php/318951-user-online-count-etc.html
mfG