Logout

taurin

Erfahrenes Mitglied
Hi, ich habe ein Problem mit dem ausloggen auf meiner Seite, bzw. es geht schon aber nicht so wie ich es gerne hätte.
Also mein Problem ist, das wenn man sich einloggt und nicht über den Button ausloggen, ausloggt, bleibt man ja immer eingeloggt. Wie kann ich jetzt machen, das wenn ein User die Seite verlässt, also richtig schließt, er dann ausgeloggt wird?
Mein Code sieht im mom wie folgt aus:
PHP:
include "dbconnect.php";
include "config.php";

$_SESSION['eingeloggt'] = FALSE;

$offline = $dbh->prepare("UPDATE ".$dbpf."usr SET online = 0 WHERE name = ?");
$offline->bindParam(1, $_SESSION['user_name'], PDO::PARAM_STR, 20);
$offline->execute();

unset($_SESSION['user_name']);
unset($_SESSION['user_id']);

header("Location: ".$pfad_gesamt."index.php");
Danke schonmal für die Hilfe.
lg
 
Zuletzt bearbeitet:
Dazu müsstest du die Uhrzeit speichern wann ein Besucher z.B. einen Link auf der Seite angeklickt hat.

Bei jedem Seitenaufruf werden dann die Besucher aus der Tabelle gelöscht bei denen mehr als 5, 10, 15 Minuten vergangen sind.

Verlässt jetzt jemand deine Seite ohne sich abzumelden, wird er nach der vorgegebenen Zeit automatisch ausgeloggt.
 
Danke für die Tipps. Eine leichtere Methode wäre ja demnach die SessionLifeTime auf 0 zu setzen denke ich, oder? Allerdings kommt dabei eine neue frage auf, und zwar handelt es sich dabei jetzt auch um einen Cookie? Cookies würde ich eig gern nicht nutzen.
Die Sache mit der Zeit speichern nimmt doch sicher auch mehr Leistung als nötig oder? auf jeder Seite für jeden Nutzer immer wieder neu nachschaun ist doch sicher nicht so gut oder? Vorallem wenn eh schon viele Daten aus der DB kommen.
lg
 
Aber ist es bei der Methode, session.gc_maxlifetime auf 0 zu setzen, nicht auch möglich, dass der Logout bereits während einer eigentlich noch aktiven Sitzung passiert?
 
Dann kann taurin nur hoffen, dass die cookie_lifetime nicht schon 0 ist, so wie es standardmäßig der Fall ist. Sonst nutzt ihm das nichts ;)
 
OK ich werde das ml versuchen^^ Aber komisch ist, wenn der Wert Standartmäßig 0 ist, warum verfällt er beim schließen des Browsers nicht?^^
Ich danke euch allen für eure Hilfen.
lg
 
Es verfällt beim Schließen des Browsers nicht zu verwechseln mit dem Schließen eines einzelnen Fensters! Das nur noch am Rande bemerkt.

Die Frage ist auch wie du beim Aufruf der Seiten prüfst ob ein User (noch) eingeloggt ist oder nicht.
 
Zurück