Tach!
- Warum verlieren manche Variablen ihre Werte früher als andere?
Sie "verlieren" ihre Werte nur, wenn die Sessiondateien vom Garbage Collector weggeräumt wurden. Der läuft sporadisch bei Script-Starts.
- Wie kann ich die Lebensdauer beeinflussen (und evtl. in welchen Grenzen, zum Testen wären Werte von wenigen Sekunden recht praktisch). Das ganze möglichst nicht über die php.ini sondern im Script selbst oder in der .htaccess.
Welche Werte für den Garbage Collector gelten, steht im PHP-Handbuch im Kapitel zu den Konfigurationswerten von Sessions. Ebenso steht da, wo man sie verändern kann. Die meisten können noch im Script geändert werden.
Das Problem wird vermutlich sein, dass du den Server nicht allein und zudem einen session.save_path verwendest, den auch noch andere Mithostlinge verwenden. Wenn die nun ihre Session-Lebenszeit-Parameter sehr niedrig eingestellt haben, dann räumt bei deren Scriptstarts der GC auch deine Session-Dateien früher weg. Abhilfe schafft in dem Fall nur, ein separates Verzeichnis (je Anwendung) zu verwenden.
dedlfix.