Session beenden und neu starten

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

  • Session beenden und neu starten

    Hallo!

    Ich starte mit session_start() eine neu Session und bin der meinung mit session_unset() bzw. session_unregister() die Session wieder zu "löschen". Aber wenn ich wieder auf die Startseite gehe, und dort wieder session_start() ausgeführt wird, bekomme ich immer wieder die erste erzeugte Session_ID, warum ??

    Wie kann ich das auf der Startseite überprüfen und ggf. mit session_regenerate_id() eine neue Session_ID erzeugen??

    Danke und Gruß

  • #2
    session_unset() war mal, heute sollte man session_destroy() verwenden. Und lies dir auf der zugehörigen Manualseite gründlich den Text durch, da steht nämlich auch, wie man eine Session endgültig terminiert.

    Kommentar


    • #3
      PHP-Code:
      session_destroy(); // löscht eine session
      session_unregister("TEST"); // löscht eine Sessionvariable namens TEST
      session_start(); // startet eine neue session, sucht allerdings erst nach einer vorhandenen session, wird keine gefunden, 
                       // wird eine neue generiert andernfalls auf die vorhandene zurückgegriffen 

      Kommentar


      • #4
        und genau das klappt nicht, ich bekomme die session nicht gelöscht :-(

        Kommentar


        • #5
          Original geschrieben von ProfOli
          und genau das klappt nicht, ich bekomme die session nicht gelöscht :-(
          ... und das äussert sich wie?
          Kissolino.com

          Kommentar


          • #6
            ich behalte immer die gleiche session_id

            Kommentar


            • #7
              Das ist doch egal, solange der alte Zustand der Session (z.B. 'eingeloggt') verloren ging, du sozusagen eine frische Session mit einem alten Namen erhältst.

              Kommentar


              • #8
                na ich hab das problem, das ich wenn der user mir eine mitteilung schreibt ich dann immer die mitteilung plus eine neue meldung bekomme, solange er die gleiche session_id hat.

                ist ja vielleicht nicht schlecht, aber wenn der user mit 5, 6 oder mehr mitteilungen schreibt, bekomme ich jeweils eine mail und in jeder mail steht eine mitteilung mehr.

                Kommentar


                • #9
                  wenn du die "meldungen" zusammen mit der session-id in der db speicherst, setz ein zusätzliches flag, ob eine mail gesendet wurde oder nicht.

                  ansonsten schildere dein problem in einem ganzen satz und stell dir vor wir wären 3 jahre alt
                  Kissolino.com

                  Kommentar


                  • #10
                    wie gesagt, ich habe folgendes problem:

                    ich möchte bevor ich session_start ausführe überprüfen ob bereits eine session existiert, wenn ja, dann diese session beenden und eine neue starten bzw. wenn keine existiert eine neue beginnen.

                    kann ich irgendwie überprüfen ob eine session bereits existiert?

                    Kommentar


                    • #11
                      Original geschrieben von ProfOli
                      kann ich irgendwie überprüfen ob eine session bereits existiert?
                      Nicht so, wie du das möchtest.
                      Ob eine Session existiert, findest du darüber heraus, dass du mit der Session-ID session_start() aufrufst - entweder hast du dann eine bestehende Session wieder aufgenommen, oder aber eine neue erstellt.
                      (So'n Quatsch wie manuell im Session-Tempdir nachzusehen, ob eine Sessiondatei zur ID existiert, wollen wir hier mal lieber nicht vorschlagen ...)

                      ich möchte bevor ich session_start ausführe überprüfen ob bereits eine session existiert, wenn ja, dann diese session beenden und eine neue starten bzw. wenn keine existiert eine neue beginnen.
                      Es läuft also eigentlich darauf hinaus, dass du in jedem Fall immer eine neue Session starten möchtest? (Wozu?)
                      Wenn ja, setze vor dem session_start einfach die Session-ID auf einen neuen, zufälligen Wert - dann hast du immer eine neue Session.
                      (Aufräumen der alten übernimmt der GC - obwohl, ob der das bei einem derart unsinnigen Vorgehen noch alles schafft ...?)
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar

                      Lädt...
                      X