André Laugks: Probleme mit Sessions ohne Cookies

Beitrag lesen

Hallo!

Schön das das hier alles wieder funktioniert!

Das kann ich mir vorstellen! ;-)

Hab ein mehr oder weniger großes Problem mit Sessions, bzw. mit der Weitergabe der PHPSESSID.
Ich wollte bei einer neuen Seite diesmal ganz auf Session-Cookies verzichten, ich brauche die Session ID im Prinzip auch nur für den Warenkorb. Aber trotzdem funtioniert das dann ja nur, wenn ich an jeden Link die Session ID ranhänge. Das habe ich meines erachtens getan, aber irgendwie funktioniert das nicht immer 100%ig. ...

Mensch Junge, schaust Du wenigstens einmal in die Doku oder bemühst die Suche(n).
Ich habe Forum ich schon ganze Aufsätze zu den Sessions geschrieben.

http://forum.de.selfhtml.org/archiv/2001/7/26734/
http://forum.de.selfhtml.org/archiv/2001/6/24858/
http://forum.de.selfhtml.org/archiv/2001/6/25227/

In der FAQ vom Herrn Prof. Dr.PHP Koehntopp gibt es auch ein ganz langes Kapitel, PHP4 und Sessions.

Erstmal grundsätzlich, reicht es, wenn ich auf dr Startseite einmal @session_start();
aufrufe? Wenn ich das so mache, habe ich doch erstmal noch keine SessionID, jedenfalls ist dann die Variable $PHPSESSID leer. Ich hatte auf allen anderen Seiten nämlich nichts mehr mit @session_start();
geschrieben und dann ging es nicht. Ich habe hauptsächlich ein Formular, in das ich ein verstecktes Feld mit dem Namen "SID" und dem Wert $PHPSESSID, über das die Navigation von der Startseite läuft. Ich habe extra einen anderen namen gewählt, den ich überall beibehalte, damit ich zu 100% von den Cookies loskomme, oder war das nicht so schlau?

Da kammst Du die Sessionvariable jeden Namen geben, Du mußt diese Option deaktivieren.

ini_set("session.use_cookies", "off");

Das scheibst Du in die erste Zeile Deiner Seiten, als aller erstes. Weil Du sicherlich kein Zugriff auf die php.ini hast, kannst Du mit dieser Funktion Einfluß nehmen.

Jedenfalls übertrage ich so auch die Session ID in allen Links, und von den anderen Seiten aus dann nur noch als SID.
Aber das alles funktioniert nur, wenn ich auf der 2. Seite auch die Session starte, was ich aber vermeiden wollte. Wenn ich die ID einmal in der Variable SID habe, geht alles wunderbar.

Du bist doch bei Schlund? Du übersetzten PHP mit --use-trans-sid, dann hängt der PHP-Parser an jeden relativen Link die "Session-Daten"(Name+ID). Ich weiss auf alle Fälle bei den ganz großen Paketen.

Kann mir jemand sagen ob ich einen Denkfehler mache, oder warum das nicht so klappt, wie ich mir das vorstelle?

Vor allem, warum habe ich auf der 1. Seite keine Session ID, ich meine das weiß der Server ja schon vorher und schickt mir die Seite, warum nicht auch mit SessionID?

Woher soll die 2. Seite die Session-ID bekannt sein, wenn Du ihr sie nicht mitteilst?

MfG, André Laugks