Lifetime einer Session festlegen, ohne Cookies zu registrieren

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

  • Lifetime einer Session festlegen, ohne Cookies zu registrieren

    Hi !!!

    Jetzt habe ich eine halbe Stunde lang euer echt gutes Board durchforstet - aber leider keine Antwort auf meine Frage gefunden ... Also poste ich sie doch mal ...

    Ich starte eine serverseitige Session mit session_register(); ohne Cookies zu verwenden.
    Danach befülle ich die Variable $_SESSION mit allen möglichen Werten, die so in meiner Session gehalten werden sollen.
    Und nach einer gewissen Zeit, die der registrierte Benutzer sich auf meiner Seite aufhält ohne etwas zu machen, wird die Session logischerweise automatisch beendet.

    Nun meine frage:

    Wie kann ich die lifetime (maxlifetime) meiner Session ändern oder festlegen, ohne die für cookies bekannten Funktionen (session_register usw.) zu benutzen ?!?

    Im Vorab schon mal tausend Dank an das Genie, das mir helfen kann ;-)
    Yeah !

  • #2
    session_register ist veraltet und sollte nicht mehr benutzt werden.

    besser = $_SESSION

    ansonsten schaue mal in die phpinfo unter session zur maxzeit.

    PHP-Code:
     <?
    phpinfo();
    ?>
    mfg
    marc75

    <Platz für anderes>

    Kommentar


    • #3
      entweder einstellungen ändern -> php.ini -> session lifetime
      oder die session id´s in einer datenbank mit einem timestamp speichern. wenn abgelaufen -> session_destroy() <- sollte man eigentlich immer machen!
      h.a.n.d.
      Schmalle

      http://impressed.by
      http://blog.schmalenberger.it



      Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
      ... nur ohne :-)

      Kommentar


      • #4
        Schon mal verschärften Dank euch beiden !!!

        Leider kann ich allerdings die PHP-Einstellungen auf dem Webserver nicht ändern, weil ich nur ein wenig webspace angemietet habe und mir einen ganzen (eigenen :-D ) Server nicht leisten kann ...

        Außerdem wäre ein Timestamp in der Datenbank nicht so sinnvoll, weil mein Problem ja gerade die Zeit ist, in der der Benutzer keine Aktionen durchführt - also Datenbankbfragen nicht durchgeführt werden.

        Bei der Verwendung von Cookies gibt es den Parameter "session.cookie_lifetime" - der, wenn er auf null gestellt ist, eine Session erst dann beendet, wenn der angemeldete User seinen Browser schließt.
        Etwas damit vergleichbares suche ich eigentlich für serverseitig gespeicherte Sessions ...
        Yeah !

        Kommentar


        • #5
          Original geschrieben von DaGuertliz
          Außerdem wäre ein Timestamp in der Datenbank nicht so sinnvoll, weil mein Problem ja gerade die Zeit ist, in der der Benutzer keine Aktionen durchführt - also Datenbankbfragen nicht durchgeführt werden.
          du hast mich / das prinzip nicht verstanden! denk nochmal drüber nach ...
          h.a.n.d.
          Schmalle

          http://impressed.by
          http://blog.schmalenberger.it



          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
          ... nur ohne :-)

          Kommentar


          • #6
            Original geschrieben von DaGuertliz
            Schon mal verschärften Dank euch beiden !!!

            Außerdem wäre ein Timestamp in der Datenbank nicht so sinnvoll, weil mein Problem ja gerade die Zeit ist, in der der Benutzer keine Aktionen durchführt - also Datenbankbfragen nicht durchgeführt werden.

            ...
            Es werden doch noch mehr user als nur der eine auf deinen seiten sein oder?

            die abfrage kannste doch generell machen. alle session die älter als x sind löschen. bei jedem User der sich bewegt wird der timestamp aktualisiert, so das er nicht unter der zeit x fällt.
            mfg
            marc75

            <Platz für anderes>

            Kommentar


            • #7
              Also wenn ich das richtig verstehe, trage ich in die Datenbank ein, wann der user seine Session startet und überprüfe dann mit jedem Seitenaufruf, ob eine vorgegebene Zeit dauer überschritten wurde, woraufhin ich dann session_destroy durchführen würde ...

              das versuche ich mit einem Template, das gleich nach session_start() auf jeder Seite implementiert ist, zu umgehen:

              PHP-Code:
              <?php 
              if(!isset($_SESSION)){
                  echo 
              "Deine Session wurde leider beendet. Zum <a href='index.php'>Anmeldebildschirm</a>";
                  
              session_destroy();
                  exit();
              }
              ?>
              *lach* ... ich befürchte, ich hab immer noch nicht verstanden, was Du meintest ;-)
              Yeah !

              Kommentar

              Lädt...
              X