Sven Fäßler: Neue SessionID nach Logout - Login

Hallo!
Bin hier gerade am verzweifeln!
Ich habe eine Frameseite mit einer Login.php in der die Session gestartet wird, und eine Logout.php, die die Session eigentlich schließen sollte. Wenn ich jetzt jedoch wieder ohne den Browser zu schlißen, auf Login gehe bekomme ich wieder die gleiche ID wie vorher. Jemand eine Idee?

Danke
Sven

Hier Quellcodes ===========================================

Login:
<?php

session_start();

session_register('username');
    session_register('passwort');

?>

Logout:
<?php

session_destroy();

?>

  1. Hi,

    Login:
    <?php

    session_start();

    session_register('username');
        session_register('passwort');

    ?>

    Logout:
    <?php

    session_destroy();

    ?>

    du kriegst nicht zufällig eine Fehlermeldung, dass er die session nicht zerstören kann weil er sie nicht kennt?
    Es gehört natürlich vor das session_destroy ein session_start() um die aktuelle session wieder aufzunehmen.

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
    Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
    Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
    1. Hi,

      Login:
      <?php

      session_start();

      session_register('username');
          session_register('passwort');

      ?>

      Logout:
      <?php

      session_destroy();

      ?>
      du kriegst nicht zufällig eine Fehlermeldung, dass er die session nicht zerstören kann weil er sie nicht kennt?
      Es gehört natürlich vor das session_destroy ein session_start() um die aktuelle session wieder aufzunehmen.

      ciao
      romy

      Habe jetzt in der Logout.php

      <?php

      session_start();
       session_destroy();

      ?>

      aber trotzdem erhalte ich wenn ich wieder auf Login klicke die gleiche ID wie in der Session "davor" :(

      1. Hi,

        bitte nur relevante Textzeilen zitieren!

        Habe jetzt in der Logout.php
        <?php
        session_start();
        session_destroy();
        ?>

        was passiert genau: wo geht die login.php hin, wo geht die logout.php hin?
        versuch mal noch ein unregister vor dem löschen, obwohl das eher schadensbegrenzung als Ursachenbekämpfung ist.
        aber wenn Du keine Fehlemeldung bekommen hast vorhin, scheinst Du mehrere Sessions am Laufen zu haben, und er bezieht sich auf die falsche. (ist nur ne Vermutung)

        ciao
        romy

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
        Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
        Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
        1. Hi,

          was passiert genau: wo geht die login.php hin, wo geht die logout.php hin?

          Die Login.php verweist auf Login_check.php dann auf das Menü
          die Logout.php geht nirgends hin, hier gibt es lediglich die Möglichkeit sich wieder anzumelden (href auf login)

          Gruß
          Sven

          1. Hi,

            die Logout.php geht nirgends hin, hier gibt es lediglich die Möglichkeit sich wieder anzumelden (href auf login)

            ich schätze da liegt das Problem: ich weiss ehrlich gesagt nicht warum, aber sessionhandling wird erst wirksam, wenn es weitergeht. Wenn Du jetzt z.B. wieder auf die login.php umleiten würdest, wäre dort die session zerstört.
            d.h. logout beinhaltet session_start(), session_destroy() und header("Location:login.php");

            ciao
            romy

            --
            DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
            sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
            Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
            Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
            1. Hi,

              die Logout.php geht nirgends hin, hier gibt es lediglich die Möglichkeit sich wieder anzumelden (href auf login)
              ich schätze da liegt das Problem: ich weiss ehrlich gesagt nicht warum, aber sessionhandling wird erst wirksam, wenn es weitergeht. Wenn Du jetzt z.B. wieder auf die login.php umleiten würdest, wäre dort die session zerstört.
              d.h. logout beinhaltet session_start(), session_destroy() und header("Location:login.php");

              Ist nicht der Fall, habe ich eben bereits probiert.
              Ich bekomme immer wieder die gleiche Session-ID.
              Was wäre wenn ich in der Login.php zuerst prüfe ob eine Session existiert, falls eine existiert, diese lösche und danach eine neue starte? Geht das?

              MfG
              S.

              1. Hi

                Ist nicht der Fall, habe ich eben bereits probiert.
                Ich bekomme immer wieder die gleiche Session-ID.
                Was wäre wenn ich in der Login.php zuerst prüfe ob eine Session existiert, falls eine existiert, diese lösche und danach eine neue starte? Geht das?

                ja, das geht, aber das ist trotzdem Problembehebung und nicht Ursachenbekämpfung, irgendwo muss der Haken doch sein, hast Du schon mal versucht  die Variablen auszugeben, vielleicht ist die session ja auch nicht da, aber die Variablen sind trotzdem leer?
                welche php-version hast Du? Ich bin mir nicht sicher, aber es gab da mal mit einer Version Probleme bei den sesions.
                Tut mir leid, ich weiss auch nicht weiter...
                ciao
                romy

                --
                DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
                sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
                Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
                Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
  2. Huhu Sven

    die Session-ID wird ja üblicherweise als Cookie gespeichert (sofern möglich).

    Der Browser hält diese ID (Cookie) auch nach einem session_destroy() weiterhin gespeichert und sendet sie beim nächsten Seitenaufruf.

    Du musst also beim Logout dafür sorgen, dass dieser Cookie ebenfalls
    gelöscht wird.

    Z.B. so:

    setcookie (session_name(), "", "", "/");

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday