Neue SessionID nach Logout - Login
Sven Fäßler
- php
0 romy0 Sven Fäßler0 romy0 Sven Fäßler0 romy0 Sven Fäßler0 romy
0 lulu
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();
?>
Hi,
Login:
<?phpsession_start();
session_register('username');
session_register('passwort');?>
Logout:
<?phpsession_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
Hi,
Login:
<?phpsession_start();
session_register('username');
session_register('passwort');?>
Logout:
<?phpsession_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" :(
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
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
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
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.
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
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