Ankündigung

Einklappen
Keine Ankündigung bisher.

Logout funktioniert nicht!!!

Einklappen

Neue Werbung 2019

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

  • Logout funktioniert nicht!!!

    Hallo PHP Profis,

    ich habe folgendes Problem, unzwar habe ein kleines Login system geschrieben für meine Userverwaltung was auch wundarbar funtkionert, aber wenn ich mich ausslogge und auf dem button zurück vom IE drücke, komme ich wieder in das profil vom User zurück. Dies soll aber nicht passiern, er soll wieder auf meiner Startseite (registrationsseite) gehen, also auf die index.php


    Noch ein paar zusatzinformationen:

    Session wird im logout mit unsset gelöscht.
    danach wird eine weiterleitung Header gesetzt der mich zur (registrationsseite) index.php bringt.

    Kann das sein das IE die Seite Cached und keine neue anfrange an der Server sendet?

    Logout nach abmelden:

    case "logout":
    unset($_SESSION["user"]);
    header('Location: index.php');

    break;

    Wäre für jede hilfe dankbar.

  • #2
    Nach dem Back-Button des Browser wird eine (vom Browser) gecachte Seite gezeigt - mach dort mal eine Aktion, DANN solltest du die Meldung erhalten, das du nicht eingeloggt bist. Wenn nicht, ist dein Login Mechanismus Käse.
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Was ich persönlich besser finde als unset ist folgendes
      PHP-Code:
      $_SESSION = array(); 
      so wird die komplette Session geleert.

      Wenn du noch Cookies verwendest schau dir das mal an
      http://php.net/manual/de/function.session-destroy.php

      Kommentar


      • #4
        Hallo lstegelitz. Danke für deine Antwort. Hat alles super geklappt mit einer Aktion. Mein logout funtionert aber nur wenn ich nochmal eine Anfrage an der server sende. Ist ja klar weil die Session ja gelöscht ist.

        Nur was mich noch stört ist das er die Seite aus dem Cache holt und das will ich nicht. Er soll immer die Registrationseite zeigen, auch nach dem Ausloggen.
        was kann ich da machen?

        Und Fuel, nein ich verwende kein Cookie.

        Kommentar


        • #5
          Aktion = Klick auf Link, Submit einer Form, ... , was-auch-immer-du-innerhalb-deines-geschützten-Bereichs-machen-kannst.

          (Fortgeschritten?)
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            Was du noch versuchen kannst sind diese ganzen expires Dinger im header() bzw. die meta Angaben im HTML, da:

            http://www.php.de/html-usability-und...aden-wird.html

            Info am Rande:

            PHP-Code:
            case "logout":
            unset(
            $_SESSION["user"]);
            header('Location: index.php'); 
            Ergänzend...
            - eigentlich sollte man idealerweise nach header() ein exit; machen
            - und davor noch ein session_write_close()..

            Hab ich zumindest mal in Doku wo gelesen und handhabe es daher auch so, Explizitität ist einfach was schönes

            - Und eigentlich laut HTTP verlangt header() eine absolute URI, das sei auch noch erwähnt.
            The string "()()" is not palindrom but the String "())(" is.

            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar


            • #7
              Zitat von hausl Beitrag anzeigen
              Und eigentlich laut HTTP verlangt header() eine absolute URI, das sei auch noch erwähnt.
              Eine absolute Url beim Location-Header ist mit der RFC 7231: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content nicht mehr notwendig.

              Kommentar


              • #8
                Eine absolute Url ... nicht mehr notwendig.
                Danke für die Info!
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar

                Lädt...
                X