Archiv verlassen und diese Seite im Standarddesign anzeigen : Session beenden
Hallo
gibt es eine möglichkeit das der user automatisch ausgeloggt wirt noch einer gewissen zeit.
hmm
meinste jetztt nach einer gewissen inaktivitätszeit? oder allgemein, dass du jede session nach xx min kappst?
also jetzt vom logischen her:
du kannst eine session mit session_destroy(); beenden.
mein lösungsansatz wäre, dass du in der session.lib beim einloggn z.b.
$_SESSION['login_time'] = time();
setzt.
dann halt irgendwie beim seitenaufruf stetig erhöhen/setzen ,
vorher abfragen ob time() > $_SESSION['login_time'] + DIEZEITDIEERMAXIMALINAKTIVSEINDARF
wenn ja, ---> session_destroy(); , else --> weiter machn ;D
müsste eig. funktionieren ist allerdings ungetestet und scho sehr spät (ähh früh ;D )
SebbyPHM
31.08.2008, 12:20
In der session.lib.php vor session_start(); folgendes anfügen:
$expireTime = 60*60*6; // 6 = stunden
ini_set('session.use_cookies', true);
ini_set('session.gc_maxlifetime', time() + $expireTime);
ini_set('session.cookie_lifetime', time() + $expireTime);
ini_set('session.serialize_handler', 'php');
ini_set('session.gc_probability', 1);
session_set_cookie_params($expireTime);
Bedenke aber, dass wenn Autologin aktiviert ist, die Session immer wieder neu erstellt wird. D.h. du musst das Autologin deaktivieren?
In der session.lib.php vor session_start(); folgendes anfügen:
$expireTime = 60*60*6; // 6 = stunden
ini_set('session.use_cookies', true);
ini_set('session.gc_maxlifetime', time() + $expireTime);
ini_set('session.cookie_lifetime', time() + $expireTime);
ini_set('session.serialize_handler', 'php');
ini_set('session.gc_probability', 1);
session_set_cookie_params($expireTime);Bedenke aber, dass wenn Autologin aktiviert ist, die Session immer wieder neu erstellt wird. D.h. du musst das Autologin deaktivieren?
Ist zwar schon asbach,dennoch würde mich interessieren, wie man das realisieren kann.
Ich hab in der session.lib den Teil für den Autologin Cookie Teil rausgenommen. Den Code von sebby eingesetzt und probehalber auf 1 Std gesetzt. Ist leider nach ablauf nichts passiert.
Muss Autologin noch woanders rausgenommen werden? Wäre nett, wenn da jemand nen Tipp für mich hätte oder eine andere Lösung parat hat.
Danke :wink:
LG
Mit der PHP-Funktion "session.gc_maxlifetime" kannst du ein Timeout setzen
ini_set('session.gc_maxlifetime', time() + $expireTime);
Du setzt das Timeout auf time() + $expired in Sek.? Denke mal darüber nach :D
Moin,
kleine korrektur.
Hab es jetzt nochmal mit allen gängigen Browser getestet und funzt doch wie von sebby beschrieben. Man sollte allerdings den Autologin Teil in der session.lib rausnehmen, damit die session nicht als erneuert wird.
LG
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.