Google schon seit paar Stunden, aber habe leider noch nicht genau das gefunden, was ich suche.
Das Problem:
Ich habe ein Login-Script, mit Registrierung und allem drum und dran.
Ein User registriert sich, die Daten werden in der Datenbank gespeichert (Passwort in MD5 Hash).
Klappt alles wunderbar, auch der Login und alles.
Nur kann man nun von einem anderen PC oder mit einem anderen Browser sich ebenfalls mit dem selben Account einloggen. D.h. man ist mehrmals eingeloggt.
Lösung des Problems ist im Prinzip >
User loggt sich ein, in der Datenbank wird loggedin auf 1 gesetzt
(mysql_query("UPDATE accounts SET loggedin = 1 WHERE ...")
Jetzt kann ich beim Einloggen ja überprüfen:
mysql_query("SELECT * FROM accounts WHERE login = ... AND loggedin != 1");
Wenn das der fall ist > Login erfolgreich, wenn nicht, ausgabe "User bereits eingeloggt" oder iwie sowas...
Aber wenn nun der Benutzer sich nicht mit LOGOUT wieder ausloggt, wird der Datenbank eintrag nicht wieder auf 0 gesetzt.
Problem?
User schließt Browser = Sessions werden gelöscht
User geht wieder auf die Seite, keine Sessions vorhanden = Loggout
Er versucht sich einzuloggen, Datenbank sieht > loggedin = 1 > Datenbank denkt > User noch eingeloggt
Wie kann ich überprüfen ob der User noch online ist, z.B. ob die Session's noch existieren?
Hoffe ihr versteht was ich meine...
MfG
Das Problem:
Ich habe ein Login-Script, mit Registrierung und allem drum und dran.
Ein User registriert sich, die Daten werden in der Datenbank gespeichert (Passwort in MD5 Hash).
Klappt alles wunderbar, auch der Login und alles.
Nur kann man nun von einem anderen PC oder mit einem anderen Browser sich ebenfalls mit dem selben Account einloggen. D.h. man ist mehrmals eingeloggt.
Lösung des Problems ist im Prinzip >
User loggt sich ein, in der Datenbank wird loggedin auf 1 gesetzt
(mysql_query("UPDATE accounts SET loggedin = 1 WHERE ...")
Jetzt kann ich beim Einloggen ja überprüfen:
mysql_query("SELECT * FROM accounts WHERE login = ... AND loggedin != 1");
Wenn das der fall ist > Login erfolgreich, wenn nicht, ausgabe "User bereits eingeloggt" oder iwie sowas...
Aber wenn nun der Benutzer sich nicht mit LOGOUT wieder ausloggt, wird der Datenbank eintrag nicht wieder auf 0 gesetzt.
Problem?
User schließt Browser = Sessions werden gelöscht
User geht wieder auf die Seite, keine Sessions vorhanden = Loggout
Er versucht sich einzuloggen, Datenbank sieht > loggedin = 1 > Datenbank denkt > User noch eingeloggt
Wie kann ich überprüfen ob der User noch online ist, z.B. ob die Session's noch existieren?
Hoffe ihr versteht was ich meine...
MfG