[PHP] session timeout?

linchris

Cadet 4th Year
Registriert
Okt. 2004
Beiträge
72
Ich habe das Problem, dass mir die sessions nach einer bestimmten Zeit verloren gehen.

Seltsam ist, dass es immer unterschiedliche lange dauert, biss er die session nicht wieder aufnimmt.

Dumm ist, dass die Zeit in der er die session findet (beim erneuten aufruf der Seite) leider meistens viel zu kurz ist (1-3min)! Wenn der user meines CMS nen neuen text schreibt kann er das nicht in 1-3 Minuten schaffen, und nach der zeit ist er ausgelogged, da seine Benutzerdaten in der session stehen!

Die session-ID wird in einem cookie übergeben.

Ist das Problem Provider (strato.de) abhängig oder kann ich daran was machen, oder ist es auf ein Programmierfehler zurück zu führen, was ich allerdings nicht glaube, da es ja funktioniert (die session wieder aufgenommen wird), wenn die Seite vor ablauf der Zeit neu geladen wird!

Ich hoffe das war jetzt nicht zu kompliziert!
 
Hi

Also wie lange die Sessions erhalten bleiben hängt von mehreren Faktoren ab.

Einerseits natürlich, wie lange die 'Verfallszeit' des Cookies ist.

Wenn du das Cookie manuell setzt (z.B. setcookie("name", "wert", time()+3600, "/");)
dann ist ja bekanntlich 3600 die Zahl, die angibt in wievielen Sekunden das Cookie 'verfällt'.
Wenn das Cookie aber von der Session Funktion automatisch gesetzt wird, hängt die Verfallszeit von den Einstellungen in der php.ini ab. (Session verfallszeiten auf Userseite könnten natürlich vom User manipuliert werden, die 'Seite' der Session die auf dem Server liegt nicht. Auch deren Verfallszeit hängt von der Konfiguration in der php.ini ab.)

Desweiteren hat PHP auch noch einen GarbageCollector, dieser räumt 'alte' Information weg (also eben z.B. der Teil der Session der aufm Server liegt). Dies hängt auch von Einstellungen in der php.ini ab, sollte aber so oder so nie die Session killen, bevor sie eh schon abgelaufen sind.

----> Wenn du keinen Zugriff auf die PHP Einstellungen deines WebAccounts hast (was wahrschienlich leider der Fall ist, höchstens du hast nen RootServer) kannt du da nichts ändern.

Irgendwie könnte ich mir aber vorstellen, dass das Problem an einem anderen Ort liegt, weil dass bei Starto die Sessionszeit so eingestellt ist, dass sie nach 2 Minuten gekillt werden, wär irgendwie unlogisch.

Mögliche weitere Fehlerquellen:

- Die Systemzeit des Users unterscheidet sich zu stark von der Serverzeit. Dann wird das Cookie evt. gleich wieder gekillt weil es schon fast abgelaufen ist, wenn es gesetzt wird.
 
Zurück
Oben