PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Session beenden



halk
31.08.2008, 04:01
Hallo

gibt es eine möglichkeit das der user automatisch ausgeloggt wirt noch einer gewissen zeit.

eRaaaa
31.08.2008, 05:51
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, 11: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?

Sam2004
15.05.2012, 16:12
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

breaker
15.05.2012, 16:54
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

Sam2004
16.05.2012, 10:09
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