Session beim Browser schliessen beenden

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

  • Session beim Browser schliessen beenden

    Hallo,

    Ich arbeite auf meiner Seite mit Sessions, welche das Zugriffsrecht auf die Seite regeln. Ich habe zwar die Möglichkeit eingebunden, dass man sich ausloggen kann, aber es würde mich noch interessieren, ob es auch möglich ist, die Session automatisch beim Schliessen der Seite zu beenden.

    Gibt es da eine Möglichkeit? Vielleicht mit Java Script?

    Gruss, Simon

  • #2
    Du mögest dir bitte die Grundlagen zum PHP-Session-Handling ansehen. Danke

    Kommentar


    • #3
      http://www.php-resource.de/manual.ph...ession-destroy

      würde ich beim "LOGOUT" empfehlen

      Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
      sondern mit den Augen das Manual zu lesen.

      Kommentar


      • #4
        @manu: Da bist du nicht der einzige:
        Ich habe zwar die Möglichkeit eingebunden, dass man sich ausloggen kann,

        Kommentar


        • #5
          Original geschrieben von xManUx
          http://www.php-resource.de/manual.ph...ession-destroy

          würde ich beim "LOGOUT" empfehlen
          Dazu sollte ihr aber folgendes beachten:
          Mit der Session zusammenhängende Globale Variablen und das Session-Cookie werden nicht gelöscht.
          D.h. wenn ihr oben auf der Seite ein session_destroy() ausführt, ist unten trotzdem die Variable $_SESSION noch gesetzt/gefüllt/usw.
          Kann zu Probleme führen (z.B. in meinem Code, deshalb sollte man noch ein UNSET($_SESSION) ausführen!)

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            ein unset($_SESSION) sollte man nicht machen. das wüsste man aber, wenn man das manual lesen würde...

            $_SESSION = array(); ist besser
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Original geschrieben von mrhappiness
              ein unset($_SESSION) sollte man nicht machen. das wüsste man aber, wenn man das manual lesen würde...

              $_SESSION = array(); ist besser
              Und wo steht was davon, dass man das nicht machen sollte? Ich seh unten in den Userbeiträgen nur die Möglichkeit.....ein neues Array reinzupacken hat natürlich mehr Effekt im Umgang mit z.B. if (isset($_SESSION['id']) oder so, aber das war ja auch nur eine rein theoretische Überlegung. In meinem Projekt hab ich das Ding auch einfach durch ein leeres Array ersetzt, weil ich z.B. auch die in_array-Funktion nutze usw. und das geht dann natürlich ziemlich in die Hose >_>

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                Original geschrieben von ghostgambler
                Und wo steht was davon, dass man das nicht machen sollte?
                http://www.php.net/manual/en/function.session-unset.php
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  Original geschrieben von mrhappiness
                  http://www.php.net/manual/en/function.session-unset.php
                  ah ^^, gar nicht gesehen....war aber auch nirgends "ausgeschilder"...bin sonst über alle Session-Seiten rübergegangen....naja, egal XD"

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #10
                    Ich habe zwar die Möglichkeit eingebunden, dass man sich ausloggen kann, aber es würde mich noch interessieren, ob es auch möglich ist, die Session automatisch beim Schliessen der Seite zu beenden.
                    Nur mit PHP kann das nicht gehen, denn PHP kann nicht auf Events im Browser des Besuchers reagieren. Eine Lösung wäre eine Kombination aus Javascript und PHP.
                    Du schreibst dir ein JS, welches auf den Event on_close reagiert und deinem PHP Script die zu löschende Session übermittelt. PHP putzt dann die Session raus.
                    Das Prob hierbei ist, dass JS deaktiviert sein kann, dann brauchst du eh einen Logout Button.

                    Wenn du es trotzdem mit JS machen willst, dann würde ich dir empfehlen sicherzustellen ob beim Client JS an ist. Das kannst du so machen:
                    Du schreibst dir ein JS, das mittels einer JS-Funktion einen Link zu deiner Seite printet. Wenn der Client über diesen Link kommt, dann hat er JS an. In den noscript-Bereich der Seite schreibst du den Link nochmals (einfach z.B. index.php?js=false).
                    Auf der Zielseite kannst du dann entweder einen Logout Button platzieren (user hat JS nicht an) oder machst das ganze mit JS (user hat JS an).

                    Klingt mir aber nach erheblich mehr Aufwand als bloss einen Logout Button für alle zu machen.

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar

                    Lädt...
                    X