[Variablen] Session Problem

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

  • [Variablen] Session Problem

    Ich habe jetzt ein MemberLogin mit Sessions programmiert. Die Session wird zu gewiesen.
    Alle Seiten überprüfen ob die Session registriert ist, dass funktioniert und wenn man dann auf Logout klickt, wird zwar die Session geschlossen und man kommt auch nicht mehr auf die geschützen Seiten, aber wenn man sich dann wieder einloggt erhält man wieder die gleiche Session_id wie vorher, wenn ich aber den Browser auf und zu mache, dann erhalte ich wieder eine neue ID, aber es muss doch auch gehn, dass die Session wircklich gleich komplett weg ist nun habe ich noch folgendes gelesen:
    session_destroy() löscht alle in Verbindung mit der aktuellen Session stehenden Daten. Mit der Session zusammenhängende Globale Variablen und das Session-Cookie werden nicht gelöscht.

    Mit welchem Befehl kann ich diese denn löschen???
    Ich vermute, dass es daran liegt, oder vielleicht lässt sich ja mein Vorhaben auch anderes realisieren, aber die Sessions sollten schon noch mit von der Partie sein, denn ein Loginscript ohne SEssions ist mir zu unsicher und da wüsste ich auch wie man das Coden würde.
    Zuletzt geändert von Normi; 11.07.2003, 23:23.

  • #2
    wie gesagt, das cookie wo die session id drinsteht wird nicht gelöscht
    wenn du dich dann wieder einloggst nimmt php die session id aus dem cookie und verwendet diese weiter ..

    was du zu tun hast is das cookie loswerden:

    PHP-Code:
    setcookie(session_name(), ""0); 
    siehe: http://php.net/setcookie

    und beachte bitte dass dies vor allen ausgaben geschehen muss, sonst kommen nur errors (=
    mfg,
    [color=#0080c0]Coragon[/color]

    Kommentar


    • #3
      PHP-Code:
      <?
      session_start();
      session_register(ok);
      echo $PHPSESSID;
      ?>

      <?

      session_start();
      session_unset(ok);
      setcookie(session_name, "",0);
      if (!session_is_registered(ok)) {
      echo "Sessionfehler";
      }
      else
      echo "SESSION OK";
      ?>
      <?
      session_start();
      session_register(ok);
      echo $PHPSESSID;
      ?>
      Er gibt Session Fehler aus, was ja auch Sinn und Zweck von unset ist, aber wenn er dann der OK eine neue Session_id zuweist steht trotzdem wieder die alte da, also z.B.: 6c292147c556fc00fca83e2eb671598e Sessionfehler6c292147c556fc00fca83e2eb671598e

      Ich will aber dass die zweite Session eine neue ID hat!!!
      Zuletzt geändert von Normi; 12.07.2003, 16:40.

      Kommentar


      • #4
        was für ein fehler ?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Nein kein Codefehler, sondern er gibt das echo Sessionfehler aus, weil ja die Session nicht mehr registriert ist durch das unset, aber durch das setcookie sollte doch eigentlich auch der Wert mit gelöscht werden, denn wenn er die Session dann wieder neu starten soll, dann nimmt er wieder die alte Sessio-id, ich will aber das er neue Session-id zuweisst, da dies bisher nur geschieht wenn ich den IE schließe und den Browser wieder neu aufmache, dann erhalte ich eine neue Session, aber es muss doch auch gehen, dass sie gleich komplett gelöscht wird und dass man immer eine neue Sessio erhält, wenn man zuvor den Befehl zum Totalen löschen gegeben hat und eben diesen suche ich, vielleicht gehts ja mit setcookie und ich mache bloß was falsch, also die Variable vielleicht doch nicht ganz weg geht oder so???

          Kommentar


          • #6
            Du musst schon genau lesen, was die anderen dir posten:
            Original geschrieben von Coragon Rivito
            PHP-Code:
            setcookie(session_name(), ""0); 
            da steht nämlich session_name(), und das solltest du auch übernehmen.
            Außerdem vermisse ich in deinem Code session_destroy. Das musst du zusätzlich zu dem setcookie verwenden, weil session_destroy "zerstört" die Session, und das setcookie löscht halt das Cookie mit der Session-ID auf dem PC des Users.
            hopka.net!

            Kommentar


            • #7
              Vielen Dank, jetzt geht alles

              Übrigens: Ich habe diese Frage in mehrern Foren zur Disskussion gestellt und dieses Forum war das einzige was mir wircklich helfen konnte
              Zuletzt geändert von Normi; 12.07.2003, 22:13.

              Kommentar


              • #8
                Hallo zusammen

                Eure Lösungsansätze haben auch mir geholfen, mit dem Problem einigermassen gut fertig zu werden. Jedoch kostete es mich noch einiges an Nerven, bis ich den letzten Kniff auch noch raus hatte. Ich denke, es geht einigen ähnlich wie mir, weshalb ich meine Lösung hier rein posten werde, damit diese Armen Schlucker nicht einen halben Abend mit "Googlen" verlieren.


                PHP-Code:
                // Client-seitige Instanz des Session-Cookies killen
                setcookie$PHPSESSID"");

                // registrierte Variblen sicherheitshalber löschen
                session_unregister"user" );
                session_unregister"pass" ); 

                // Session sicher löschen
                session_destroy();
                session_unset();

                // neue Session-ID generieren
                $sid md5 uniqid rand() ) ); 
                session_id$sid ); // <--- ganz wichtig ;-)

                // zu guter Letzt noch "restarten"
                session_start(); 
                Farewell
                Marc H.

                Kommentar

                Lädt...
                X