Sessionproblem bzw. Frage

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

  • Sessionproblem bzw. Frage

    Die Boardsuche hat nicht wirklich was gebracht, also muss ein neuer Thread her.

    Also ich hab mir da einen pw-geschützen Bereich zusammengeschrieben, es werden auch Session benutzt. Funktioniert soweit auch super.

    Beim Ausloggen bzw. Zerstören der Session hab ich folgendes Problem, das wenn ich im Browser zurück gehe, ich dann wieder voll eingeloggt bin, das will ich auf alle Fälle vermeiden. Wenn ich nach dem Ausloggen per Header wieder aufs Einlogformular wechsel, dann zurück gehe, sagt mir IE auch Sicherheitsgründen wird Formularinhalt bla bla, geh ich dann noch weiter zurück bin ich wieder voll eingeloggt.

    Meine Frage ist, woran liegt das und wie kann ich das unterbinden ?

    Apu

  • #2
    Hört sich an als ob Du nicht bei jeder Seite den login checkst

    zB
    if(!login) header("zurueck");
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Ich habe per header(location.....) auf eine .html Datei weitergeleitet, die einfach wieder nach 5 Sek. weiterleitet, ich habe es nicht geschaftt per zurück-Button wieder eingeloggt zu sein...^

      sobald ich den Back-Button drücke bin ich dann (wenn ich mich ausgeloggt habe auch immernoch Gast...

      ich möchte nicht unverschämt sein... aber: session_destroy(), hast du benutzt??

      Kommentar


      • #4
        Ob eingelogged prüfe ich am Anfang jedesmal ab. Ich hab sogar eine extra Variable dafür, die ich auf true oder false setze. Das hat es auch nicht gebracht. Und ich habe session_destroy() benutzt, sogar vorher noch session_unset(). Ich arbeite momentan mit PHP 4.1.2, vielleicht sind da irgendwelche Bugs in der Richtung bekannt.

        Das mit dem Refresh is ne gute Idee, werde ich mal probieren.

        Apu

        Kommentar


        • #5
          Frage zum debuggen:
          - wird ein cookie beim login erzeugt und mit session_destroy() wieder gelöscht?? (genau das erzeugte)

          gibt session_destroy() true zurück??

          Kommentar


          • #6
            Es wird kein Cookie erzeugt beim Einloggen ! Beim Ausloggen gibt session_destroy() true zurück, sonst wird das Login-Formular gar nicht aufgerufen.

            Das Problem ist wohl, das durch Refresh des Browsers, irgendwie nochmal komplett eingelogged wird, unabhängig davon ob die Variablen leer sind oder in der Session hängen. Ich mach für jede relevante Variable beim Aussloggen ein unset().

            Ich teste das lokal mit nem Apache ( version 1.3.12 ) und IE 5.0 !

            Apu

            Kommentar


            • #7
              Ich würde mal eher davon ausgehen das das ein problem des cachings der Seite ist ...

              Sessions (also die Variablenwerte) werden im Normalfall (ohne eigenen Session Handler) in Dateien auf der Festeplatte des Servers (meinstens /tmp/ und dann sess_XXXXXXXXXXXXXXXXX XXXX steht für die SessionID) geschrieben. session_destroy() löscht nun diese Datei.

              Also kann auch wenn Du den Backbutton drückst der Benutzer nicht mehr real eingeloggt sein ... versuch mal 'n Reload ...
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar


              • #8
                Original geschrieben von goth
                Also kann auch wenn Du den Backbutton drückst der Benutzer nicht mehr real eingeloggt sein ... versuch mal 'n Reload ...
                Das meine ich die ganze Zeit, wenn ich zurück gehe, ist der User nicht mehr eingelogged, mache ich allerdings einen Reload ( F5 ), sagt mir der Browser "Die Seite kann ohne ein erneutes Senden der Informationen nicht gesendet werden", drück ich dann Wiederholen, bin ich fröhlich wieder eingelogged.

                Apu

                Kommentar


                • #9
                  So ich hab das nunmal bei mir zuhause getestet und komischer weise geht das da nicht, wenn ich refresh mache, werde ich nicht nicht wieder eingelogged. Entweder liegt das an der Browserversion ( auf Arbeit IE 5.0, zuhause IE 6.0 ) oder an der neueren PHP-Version.

                  Apu

                  Kommentar


                  • #10
                    Original geschrieben von Apu
                    Und ich habe session_destroy() benutzt, sogar vorher noch session_unset(). Ich arbeite momentan mit PHP 4.1.2, Apu
                    Nach dem php.net manual solltest du ab PHP4.1.0 nicht mehr session_unset() benutzen sonder die HTTP_SESSION_VARS direkt ansprechen.

                    Ich schreibe auf die Logoutseite immer folgenden Code:
                    session_start(); //führt die Session weiter..User ist eingelogt
                    session_destroy(); // zerstört die aktive Session..
                    session_start(); //erstellt eine neue Session und der Login ist von dieser Seite aus möglich.

                    Kommentar


                    • #11
                      Wenn du $HTTP_SESSION_VARS oder $_SESSION nutzen willst, solltest du bei Problemen auf PHP-Version 4.2.1 upgraden, da diese Arrays unter Win Probleme machen.

                      Kommentar

                      Lädt...
                      X