Sven Rautenberg: neue session_id vermeiden

Beitrag lesen

Moin!

Wenn ich nun wieder meine index.php aufrufe, dann bekomme ich eine neue Session id. Rufe ich via A HREF oder via submit die index.php auf bleibt die session id gleich.

Offenbar setzt dein PHP kein Cookie zum Speichern der Session-ID - sei es, weil dein Browser das nicht annimmt, oder weil PHP so konfiguriert ist.

Das bedeutet, dass die Session-ID in der URL weitergegeben werden muß (oder als verstecktes Formularfeld). PHP bietet hierfür an, alle HTML-Links nach der Erstellung nochmal zu scannen und im Bedarfsfall (bei der Anforderung der Seite wurde kein Cookie geschickt) überall die Session-ID hinten anzuhängen (trans_sid).

Dieses Verfahren scheitert (bzw. wird, wenn es ausgeschaltet ist, gar nicht angewandt), wenn du per Javascript erst eine URL zusammenbastelst, um die dann per location.href aufzurufen. PHP kann solche Konstrukte nicht erkennen. Deshalb mußt du die Session-ID mit PHP in den Javascript-Code reingenerieren und dann als Teil der URL an location.href übergeben.

Am sinnvollsten hat sich für solche Fälle die Konstante SID erwiesen, die im Bedarfsfall den String "sessionname=sessionid" enthält, oder leer ist, wenn ein Cookie gefunden wurde.

Also an passender Stelle "echo SID;" machen.

- Sven Rautenberg

--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|