Mailinglisten-Archive |
Hi Christoph, Christoph Rust schrieb: > Lutz Zetzsche schrieb: [...] >>1. Warum setzt Du die Session-ID eingangs explizit mit session_id()? Da >>dadurch der Cookie bei jedem Seitenaufruf neu gesetzt wird und ein Cookie >>nicht in der Seite, die ihn setzt, sondern erst beim naechsten >>Seitenaufruf ausgelesen werden kann, koennte das schon Dein Problem >>verursachen. PHP findet keinen Session-Cookie und damit keine Session-ID >>und generiert eine neue Session-ID. Nur eine Ueberlegung, aber guck mal, >>ob es nicht daran liegt. Verzichte doch mal auf das session_id() am >>Anfang. [...] > Du hast Recht :) > Beim ausprobieren bin ich darauf gestoßen, dass er beim Aufruf von > session_id() jedesmal ein neues Cookie setzt. > Aber ich brauch die Funktion session_id() ja, um PHP mitzuteilen, welche > ID er für die Session verwenden soll und somit auch an die URL anhängt, > würde ich das nicht machen, erzeugt er mir ja eine richtige Random > ZufallsID, die ich aber nicht benutzen kann. > > Lösungsversuch: > > Wenn ich erst immer prüf, ob sessid im $_COOKIE-Array nicht vorhanden > ist und dann die Funktion session_id($id) aufrufen müsst es gehen... > Aber wie bekomm ich das Prefix für die Session, denn wenn es auf dem > Server geändert wird, heißt die Variable im Cookie ja nicht mehr sessid > sondern z.B. PHPSESSID (Grundeinstellung)... > session_name() müsste eigentlich gehen.... > Ich werds mal prüfen... > Aber danke für deine Hilfe... Das waere insgesamt ein Loesungsweg. Du musst allerdings aufpassen: Wenn PHP so konfiguriert ist, dass es die Session-ID entweder im Cookie haelt oder alternativ ueber die URL transportiert, dann musst Du beachten, dass die Session-ID ausschliesslich im Cookie gehalten wird, wenn der Anwender Cookies im Browser aktiviert hat, und PHP nur auf den Transport ueber die URL ausweicht, wenn der Anwender Cookies im Browser eben deaktiviert hat. Wenn beide Wege - Cookie und URL - moeglich sind, muss Deine Loesung auch beide Wege abdecken. Die Session-ID kannst Du aber transportwegunabhaengig mit derselben Funktion abpruefen, mit der Du sie setzt: session_id -- Get and/or set the current session id Den Session-Namen kriegst Du, wie Du schon sagtest, mit session_name() heraus. Guck Dir auch noch einmal in der PHP-Doku die gesamten Session-Konfigurationsparameter zu den Cookies an. Vielleicht ist etwas dabei, was Dir ebenfalls weiterhilft. :-) Sebastian hat ja auch schon zwei davon angesprochen. Viele Gruesse Lutz
php::bar PHP Wiki - Listenarchive