PHP Session - Problem mit Session Id

  • Ersteller Stefan Bötschi
  • Erstellt am
S

Stefan Bötschi

Guest
Hi,

Ich bastle gerade an einem geschützten Bereich herum, den ich mit PHP-Sessions realisiere.
Das funktioniert auch bis an einen gewissen Punkt: Login geht, Logoff geht auch.
Aber sobald ich die Session im Logoff-Skript mit den untenstehenden Funktionen kille und mich dann neu anmelden möchte (resp. wieder eine neue Session starte) erhalte ich folgende Meldung:

QUOTE
Warning: session_start() [function.session-start]: The session id contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in /opt/lampp/htdocs/project/member/login.php on line 26

Warning: Unknown: The session id contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0


Funktionen zum Killen der Session im Logoff-Skript:


CODE
session_unset();
session_destroy();
setcookie(session_name(), "cookie_delete", 0, "/");



Wie gesagt, das Problem tritt erst nach dem Anwenden dieser Funktionen auf.

Wende ich die falschen Funktionen an?
Oder handelt es sich um ein Config-Problem?
(Ich verwende einen XAMPP als Testsystem. Hab noch nie was in der php.ini geändert...)

Danke schon im Voraus...

Greats,

S.B
 
musst du das cookie selber löschen? und gibt session_name() überhaupt noch was zurück?
 
Hi,

Hmm... Das mit dem Cookie ist ein guter Ansatz.
Nein, ich lösche das nur zur Vollständigkeit.
Ich hab mir auch schon gedacht, dass session_name() nix mehr zurückgibt, aber habs noch nicht ausprobiert. Ich hab diese Art Sessions zu killen aus einem Buch. Mal schaun, ich werds mal ohne Cookie löschen ausprobieren. Geb dann noch mal ein Feedback...
Danke für die Antwort.

Greats,

S.B
 
eigentlich sollte man zuerst das cookie löschen und dann die session zerstören.
bei mir wird das cookie aber im z.B. xampp/tmp folder unter dem namen sess_+session_id gespeichert.
Insofern als das die session in einem frame bereits mit unset und destroy aufgelöst wird, in einem anderen mit der gleichen funktionen und cookie löschen und cache löschen, aber trotzdem irgendwo überlebt, blick ich bei der session initialisierung nicht mehr durch.
ausserdem scheint mir der session aufruf etwas instabil, wenn das cookie zu gross wird und mehrere dateien fast gleichzeitig darauf zugreifen.
wenn ich nicht fast fertig wäre, würde ich statt den session funktionen, die werte irgendwo in einem file oder direkt in der seite speichern.

 
Hi,

Also, ich hab jetzt den Cookie-Kill mal weggelassen und seit da funktioniert es problemlos. Es ist wahrscheinlich schon so, dass ich nach dem zerstören der Session nicht mehr auf session_name() zugreifen kann (logisch, darauf hett ich auch selbst kommen können... ). Ich weiss aber nicht, warum mir der Interpreter dann sagt, dass die Session-Id ungültige Zeichen enthält
blink.gif
Na ja, egal...

Greats,

S.B
 
QUOTE Ich weiss aber nicht, warum mir der Interpreter dann sagt, dass die Session-Id ungültige Zeichen enthält blink.gif Na ja, egal...


spiele mal die verschiedensten kombinationen der obigen code zeilen durch, dann siehst du, wo der fehler genau geworfen wird... danach kann man weiterschauen.
 
Zurück
Oben