ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
635
635
EMPFEHLEN
-
01.07.07 21:24 #1
Hallo hab mal ne Frage zu Sessions
Ich habe in meiner datenbank eine spalte in die die aktuelle Zeit gespeichert wird...
Wenn der User jetzt zb 5 min nicht reloadet soll die Session des User auf 0 gestezt werden... und das soll auch in dem fall funktionieren wenn das fenster bereits geschlossen ist...
danke schon mal im voraus...
-
01.07.07 21:38 #2
Hi,
zum Einen: Sessions werden beim "Schliessen des Fensters" sowieso wieder gelöscht, also brauchst Du Dich darum schonmal nicht zu kümmern.
zum Anderen: Man kann in der PHP.INI einstellen, wie lange eine Session gültig ist. Da Du an diese Einstellung aber im Normalfall nicht dran kommst, hilft nur, die Session-Laufzeit per Script zu überwachen. Dazu müsstest Du allerdings bei jeder Aktion des Users die aktuelle Systemzeit in eine Variable schreiben, und diese dann mit der zuletzt gespeicherten vergleichen. Sind mehr als 5 Minuten vergangen, dann wird die Session per Script wieder gelöscht.
Einfacher geht das sicherlich mit Cookies, da Du hier die "Lebenszeit" des Cookies mit angeben kannst.
-
Die Sitzung werden erst nach Ablauf der eingestellten Lebensdauer (siehe session.gc_maxlifetime-Konfigurationseinstellung) gelöscht. Daran ändert auch eine kürzere Lebensdauer der Sitzungs-Cookies nichts.
Markus Wulftange
-
01.07.07 21:55 #4
-
02.07.07 18:07 #5
so..
bei mir werden die session variable in einer db gespeichert und die sollen auf null gestezt werden wenn 5 minuten ohne aktuaklisierung vergangen sind...
-
also sorry dass ich da jetzt so rein schreib und sorry das es dir nicht wirklich helfen wird, aber ich würde nie sessions in die db schreiben! denn sessions werden bei jedem seitenaufruf benutzt und wenn dein script nun von vielen genutzt werden soll heißt das massig (unnötigen) datenbank traffic....
denn warum sollte eine session in die db?
außerdem was steht in der session in der db? session_id() oder eine $_SESSION['name'] oder so?
wenn es session_id() ist kannst du ja statt session_id() in die db zu schreiben auch $_SESSION['time'] reinschreiben oder so....Geändert von sufijen (02.07.07 um 18:17 Uhr)
-
02.07.07 18:25 #7KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Speichere einfach in der Sitzung den Verfallszeitpunkt, der bei jedem Aufruf aktualisiert wird. Ist der Zeitpunkt bereits vergangen, wird die Sitzung gelöscht, sollte sie noch nicht vom System gelöscht worden sein.
PHP-Code:session_start();
if( isset($_SESSION['expires']) && $_SESSION['expires'] < $_SERVER['REQUEST_TIME'] ) {
session_destroy();
if( isset($_COOKIE[session_name()]) ) {
setcookie(session_name(), null, 0);
}
session_start();
session_regenerate_id();
}
$_SESSION['expires'] = $_SERVER['REQUEST_TIME'] + 300;
Markus Wulftange
Ähnliche Themen
-
Session automatisch beenden
Von bauchinj im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 18.01.10, 13:16 -
Session beenden bei Seitenausgang
Von Lektor21 im Forum PHPAntworten: 6Letzter Beitrag: 21.09.07, 11:57 -
Beenden einer Session
Von sHeN im Forum PHPAntworten: 2Letzter Beitrag: 08.02.05, 13:45 -
Fremde Session beenden
Von r3wDy im Forum .NET ArchivAntworten: 3Letzter Beitrag: 30.10.04, 08:47 -
Session beenden
Von wolfeye im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 08.09.04, 17:16





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren