Ankündigung

Einklappen
Keine Ankündigung bisher.

session problem

Einklappen

Neue Werbung 2019

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

  • session problem

    Hallo zusammen !

    ich habe bei mir die dauer der sessions auf 10 Stunden eingestellt ini_set('session.gc_maxlifetime',36000) .
    Jetzt habe ich folgendes Problem :
    Wenn jemand auf einer Seite ist, und diese in den Favoriten abspeichert, dann wird die Session id mit abgespeichert, da diese in der URL übergeben wird.
    Wenn man jetzt alle Browser schliesst, und dann über die Favoriten den Link wieder aufruft, dann stehen die Sessionwerte wieder zur Verfügung, und die "alte" Session wird wieder gestartet.

    Wie kann ich erreichen, dass die Session zerstört wird, sobald der Browser geschlossen wird.

    mfg
    jogi


  • #2
    ähm soweit ich weiss garnicht, du kannst natürlich nen logout machen und dann session_destroy() aber meiner erfahrung nach benutzen nur wenige leute den logout
    Es ist ein großer Trost, andere dort scheitern zu sehen, wo man selbst gescheitert ist. (William Somerset Maugham)

    Kommentar


    • #3
      Hallo.

      Nein, es gibt hier tatsächlich keine zuverlässige Lösung. Eine Möglichkeit wäre, dich auf die Übergabe per Cookie zu beschränken. Da hast du zwar auch nicht in der Hand, ob die beim Schließen des Browsers verfallen, aber das zumindest ist das Verhalten, das im Normalfall erwartet werden kann. Und damit erscheint die SID nicht in der URI. Hat natürlich den Nachteil, dass deine Anwendung nicht läuft, wenn der Keks abgelehnt wird.

      Ich frag mich allerdings, was es mit einer "Dauer der Session" von 10 Stunden auf sich hat. Die Option "session.gc_maxlifetim" gibt an, ab wann nach dem letzten Aufruf innerhalb der Session die Session-Daten als Müll betrachtet werden. Das sind also zwei wichtige Unterschiede zu deiner Annahme (oder zumindest zu deiner Aussage).

      Erstens bestimmst du damit nicht die Dauer der Session. Wenn du die Option auf 5 Minuten setzt und alle 4 Minuten in der Session auf einen Link klickst, läuft die Sitzung ohne Ende.

      Zweitens endet die Sitzung nicht zu diesem Zeitpunkt. Sie wird eben als Müll angesehen. Die Müllabfuhr kommt aber, wenn du ihr nichts anderes beibringst nur mit einer Wahrscheinlichkeit von 1:100 pro Seitenaufruf. Kommt also jemand nach knapp über 10 Stunden inaktivität wieder jemand auf einen Link in deiner Anwendung, ist die Wahrscheinlichkeit groß, dass die Daten noch da sind und die Session (obwohl > 10 h) wieder aufgenommen wird (und um weitere 10+ Stunden verlängert wird).

      Ich würde bei einer derartig langen Zeitspanne zumindest vom Benutzer fordern, dass er nach x Minuten Inaktivität nochmal sein Passwort zur Bestätigung eingibt - ähnlich einem Bildschirmschoner mit Passwortschutz.

      Basti

      Kommentar

      Lädt...
      X