[Funktion] Session soll automatisch zerstört werden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Funktion] Session soll automatisch zerstört werden

    Hallo Leute,

    ich hab ne HP, dort loggt man sich ein und kann jeden scheiß machen.

    Mein Problem ist nur das die meisten Leute sich nicht abmelden, und dann als ewig online drin stehen.

    Wie kann ich das bitte machen das nach ca. 10min die Session zerstört wird und der Eintrag aus der DB gelöscht wird?

    Danke an alle die mir helfen

  • #2
    vieleicht hilft dir ein cronjob
    mfg

    Kommentar


    • #3
      ich weiß was du meinst aber so ein job kann ich auf dem server nicht laufen lassen.

      Muss doch auch eine andere lösung geben, andere schaffen das doch auch!

      Kommentar


      • #4
        Schau dir mal die session.*-Parameter der php.ini an ... oder hier: http://php.net/session

        Du kannst nämlich entweder die lifetime von vornherein so setzen, wie du es haben möchtest oder du schreibst den Session-Cookie (so du denn Cookies benutzt) manuell und gibst dem eben die gewünschte Haltbarkeit mit.

        Kommentar


        • #5
          Mmh, ich hab mich damals dafür entschieden keine cookies zu verwenden.
          Aber wie merke ich denn zb. Wenn einer die HP verlässt. Weil dann könnte ich ja eine Funktion aufrufen, die das dann alles noch macht.

          Kommentar


          • #6
            Das merkst du gar nicht. Wäre auch durchs Knie in die Brust geschossen.

            Ablauf ist doch wie folgt:
            - Session beginnt, d.h. auf dem Server wird ein Sessionfile angelegt
            - Session wird fortgeführt, d.h. Sessionfile wird aktualisiert
            - Session wird irgendwann nicht mehr fortgefürht, d.h. Sessionfile bleibt unberührt und altert
            - der Garbage Collector löscht jedes Sessionfile, das älter als session.gc_maxlifetime ist, also solange schon nicht mehr aktualisiert wurde

            Verläßt ein User die Seite, führt er keine Aktion mehr darauf aus, sein Sessionfile wird nicht mehr aktualisiert und irgendwann fällt es dem GC zum Opfer. Damit ist die Session beendet.

            Kommentar


            • #7
              Hallo!

              Du kannst bei jeder Aktion des Users einen aktuellen Timestamp für den User setzten (z.B "letztaktion").
              Ferner fragst du bei jeder Aktion den Timestamp der anderen User ab. Sollte dieser 10 Minuten in der Vergangenheit liegen, kann man davon ausgehen, dass der User die Seite verlassen hat und du kannst deine gewünschten Aktionen durchführen.

              Cheerz Mirandus

              Kommentar

              Lädt...
              X