Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit sessions

Einklappen

Neue Werbung 2019

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

  • Problem mit sessions

    Hallo,

    Von einer beliebigen Seite innerhalb meines Projektes habe ich einen Logout Button, der zur einer logout.php führt, in der steht:

    PHP-Code:
    <?php
    session_start
    ();
    session_unset();
    session_destroy();

    header("Location: /index.php");
    ?>
    Lande ich wieder auf der index.php ist die session aber nicht gelöscht, denn mit einem

    PHP-Code:
    foreach($_SESSION as $key => $value){echo $key ." = "$value "
    "
    ;} 
    Sehe ich alle Daten wieder.

    Ich denke nicht, das etwas an der logout.php falsch ist, sondern mit meiner index.php in der ich ja wieder eine neue session aufmachen muss mit

    PHP-Code:
    session_name("mi");
    session_start(); 
    Ich verstehe nur nicht, wenn ich die session doch nun korrekt lösche (logout.php) sollte doch die neue session zwar bestehen, aber ohne jegliche alte Daten oder?

    Wie bekomme ich es nur hin, das die session richtig gelöscht werden?

  • #2
    Einfach mal in der Doku nachsehen und die Beispiele beachten: http://de3.php.net/manual/de/functio...on-destroy.php

    Gruß
    phpfan

    Kommentar


    • #3
      phpfan, das habe ich, aber auch den Beispielen werde ich nicht klüger, da ich session_destroy(); je verwende.

      Kommentar


      • #4
        Würdest du dir jetzt bitte mal das Beispiel dort ansehen und mit deinem Script vergleichen!!!

        Gruß
        phpfan

        Kommentar


        • #5
          Ich weiss zwar nicht ob das die Lösung ist, aber wenn ich session_name("mi"); einfach nur mit session_name(); ersetze geht, was ich möchte.

          Kommentar


          • #6
            Besser ist das

            Kommentar


            • #7
              Aber wieso? Laut Handbuch kann ich doch selber auch einen Namen vergeben?

              Kommentar


              • #8
                Wenn du auf der Seite index.php die Session aber mit dem Namen mi behandelst und auf der Seite logout.php session_name() nicht verwendest, kann auch nicht die richtige Session gelöscht werden.

                Kommentar


                • #9
                  xabbuh, kann es sein, das in Deinem Satz am Ende ein "nicht" fehlt? Nur damit ich das auch richtig verstehen kann?

                  Kommentar


                  • #10
                    Zitat von heohni
                    xabbuh, kann es sein, das in Deinem Satz am Ende ein "nicht" fehlt? Nur damit ich das auch richtig verstehen kann?
                    Eigentlich nicht. Aber ich ekläre es gerne nochmal ein wenig anders: Da du auf der Seite index.php den Namen der Session mit Hilfe der Funktion session_name() auf mi gesetzt hast, wird auf dieser Seite auch entsprechend auf die Sessionid zugegriffen, die in $_COOKIE['mi'] bzw. $_GET['mi'] angegeben ist. Auf deiner Seite logout.php wird session_name() allerdings nicht aufgerufen, so dass hier als Name der Session der Name verwendet wird, der entsprechend in deiner PHP-Konfiguration festgelegt ist (der Standardwert hierfür ist PHPSESSID). Es wird also höchstwarscheinlich auf eine ganz andere Sessionid zugegriffen.

                    Kommentar

                    Lädt...
                    X