Hello,
Hast Du es ausprobiert?
nö, brauche ich glaub' ich nicht :-)
benutzt Du ekeine Sessions? *verwundert guck*
Lösung folgt.
bin gespannt.
Wie bekommen wir das jetzt hin, dass ich "meine" Lösung sagen kann, ohne dass Du sie siehst, bevor Du "Deine" gegeben hast und ich trotzdem nicht schummeln kann? *ggg*
du präsentierst deine - und ich gebe dann im zweifelsfalle zu, dass ich mich über die bedeutung von session.save_path geirrt habe.
Na gut, ich vertraue Dir.
z.B. im Virtual Host wird für ein bestimmtes Verzeichnis oder auch nur eine bestimmtes Script der Session.Save_path eingestellt auf eine eigenes Verzeichnis.
Cookies werden für die Domain vom Script mitgeschickt und daher vom Client auch gespiegelt, wenn irgend ein Script in der Domain aufgerufen wird.
Der cookielandet nun beim Script im Sonderverzeichnis.
PHP erkennt den Cookie, da er unter dem eingestellten Namen (default PHPSESSID) eingetroffen ist. Nun wurder der Cookie aber vom index-Script des Startverzeichnisses gesendet, dass seine Session "ganz normal" in /tmp/sess_* ablegt (was übrigens eine Sicherheitslücke ist). Unser Spezialscript legt seine Sessions aber in '/home/user/applicatuion/subdirectory/sessions' ab. PHP Schaut also, ob eine Datei mit dem Namen 'sess_'.$_COOKIE[session_name()] im angegebenen Session-Dir vohanden ist. Leider ist da keine. Also legt PH eine neue an.
Der nächste Aufruf (durch Link oder Post) erfolgt aber für eine ganz ander Seite außerhalb des Spezialverzeichnisses. Da gilt wieder 'tmp/sess_*' als Ziel. Schade nur, dass der jetzt gesendete Cookie dort auch wider nicht zu einer Session-Datei passt.
Nun die Antwort auf die Frage, wie PHP denn wohl die Gültigkeit einer Session festsellt:
gar nicht!
PHP guckt nur nach einer vorhanden Sessiondatei und stellt ggf. die Sessiondaten wieder her. Ob die gültig sind oder nicht, interessiert PHP überhaupt nicht.
Man muss also immer das Zusammenspiel zwischen
session.save_path
session.name
session.cookie_path
session.cookie_domain
beachten.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau