tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
635
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von flying-anzi
    flying-anzi flying-anzi ist offline Mitglied Gold
    Registriert seit
    Jun 2007
    Beiträge
    105
    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...
     

  2. #2
    Avatar von Andreas Dunstheimer
    Andreas Dunstheimer Andreas Dunstheimer ist offline Mitglied Platin
    Registriert seit
    May 2003
    Ort
    Weiterstadt, Germany
    Beiträge
    506
    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.
     

  3. #3
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    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

  4. #4
    Avatar von Andreas Dunstheimer
    Andreas Dunstheimer Andreas Dunstheimer ist offline Mitglied Platin
    Registriert seit
    May 2003
    Ort
    Weiterstadt, Germany
    Beiträge
    506
    Zitat Zitat von Gumbo Beitrag anzeigen
    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.
    Ich spreche nicht vom Session-Cookie ... ich meinte, ein "eigenes" Cookie, und wenn das abgelaufen ist, kann man die Session manuell killen mit Session_destroy()
     

  5. #5
    Avatar von flying-anzi
    flying-anzi flying-anzi ist offline Mitglied Gold
    Registriert seit
    Jun 2007
    Beiträge
    105
    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...
     

  6. #6
    sufijen sufijen ist offline Mitglied Gold
    Registriert seit
    May 2007
    Beiträge
    236
    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)
     

  7. #7
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Zitat Zitat von sufijen Beitrag anzeigen
    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....
    Ahja und Datenbank Traffic unterscheid sich wodurch genau vom Filetraffic den es braucht um die temporäre Session Datei zu öffnen?
    Eine Datenbank kann da bei großen Seiten sogar schneller sein (ist es soweit ich weiß auch) als das "schnöde" Dateisystem eines Webservers.
     
    KIDS 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"

  8. #8
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    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(), null0);
        }
        
    session_start();
        
    session_regenerate_id();
    }
    $_SESSION['expires'] = $_SERVER['REQUEST_TIME'] + 300
     
    Markus Wulftange

Ähnliche Themen

  1. Session automatisch beenden
    Von bauchinj im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 18.01.10, 13:16
  2. Session beenden bei Seitenausgang
    Von Lektor21 im Forum PHP
    Antworten: 6
    Letzter Beitrag: 21.09.07, 11:57
  3. Beenden einer Session
    Von sHeN im Forum PHP
    Antworten: 2
    Letzter Beitrag: 08.02.05, 13:45
  4. Fremde Session beenden
    Von r3wDy im Forum .NET Archiv
    Antworten: 3
    Letzter Beitrag: 30.10.04, 08:47
  5. Session beenden
    Von wolfeye im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 08.09.04, 17:16