Ankündigung

Einklappen
Keine Ankündigung bisher.

Sessions nach bestimmter Zeit beenden

Einklappen

Neue Werbung 2019

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

  • Sessions nach bestimmter Zeit beenden

    Hallo Leute,

    Habe eine Frage bezüglich der Sessions in php.

    Wie kann ich einen Counter im Hintergrund erzeugen, der nach sagen wir mal 15 min automatisch die Session zerstört und auf die Startseite zurück leitet?

    Habe im Internet das hier gefunden, über n Cookie:

    PHP-Code:
    session_set_cookie_params(60,"index.php");
    session_start(); 
    Funktioniert leider nicht (60 --> Sekunden --> 1 Minute..)

    Könnt ihr mir da weiter helfen? Wenn jemand z.B. 15 min nichtsmehr an der Seite macht soll die Session dann eben zerstört werden.

    Gruss,
    defeajas

  • #2
    index.php als Pfad sieht auch nicht korrekt aus, probiers mal so:
    PHP-Code:
    session_set_cookie_params(60,'/'); 

    Kommentar


    • #3
      ne funkt auch nicht, passiert einfach nix.

      muss ich da was in der php.ini noch ändern?

      Kommentar


      • #4
        Zitat von defeajas Beitrag anzeigen
        Könnt ihr mir da weiter helfen? Wenn jemand z.B. 15 min nichtsmehr an der Seite macht soll die Session dann eben zerstört werden.
        Willst du damit sagen, wenn jemand 15 min untätig auf den Monitor schaut oder gar Kaffee trinken gegangen ist?
        PHP braucht ein Request, um aktiv zu werden. Du kannst die verstrichene Zeit zwischen 2 Anfragen auswerten und wenn ein Limit überschritten ist, dann umleiten.
        Wie kann ich einen Counter im Hintergrund erzeugen
        Da fällt mir jetzt nur Javascript ein (setTimeout).

        Edit: Die Session wird schon durch session_set_cookie_params nach der angegebenen Zeit beendet. Du nur mußt selbst dafür sorgen, daß dann dein Login aktiv wird, wenn das nächste mal dein script aufgerufen wird. Daß die funktion session_set_cookie_params von sich aus umleitet, das sehe ich nicht so.

        Kommentar


        • #5
          Ja meine ich.
          Wie berechne ich die verstrichene Zeit?

          Kommentar


          • #6
            Na im einfachsten Fall indem du einen Timestamp in der Session speicherst:
            PHP-Code:

            session_start
            ();

            if(isset(
            $_SESSION['time'])) {
                echo 
            "letzer Aufruf vor ".(time()-$_SESSION['time'])." Sekunden";
            }

            $_SESSION['time'] = time(); 

            Kommentar


            • #7
              Hab zwar noch keinen Kaffee, aber eigtl musst du nur session.gc_maxlifetime entsprechend anpassen - wenn dann die Session abläuft, musst du nur redirecten.

              Kommentar


              • #8
                Wenn ich nicht unterscheiden möchte, ob die Session abgelaufen ist oder es sich um einen Erstaufruf handelt, ist das ok.

                Kommentar


                • #9
                  brauchst du gar nicht .. obwohl 15 minuten arg knapp ist .. aber ohne besondere Anstrengungen zerschießt es normale Sessions nach 25 Minuten ...

                  Kommentar

                  Lädt...
                  X