Zitat:
Ohne das zu testen und ohne jetzt die PHP-Dokumentation zu bemühen, würde ich sagen, diese Änderung "funktioniert" deshalb, weil das Ergebnis deiner strtotime()-Umwandlung mit einem ungültigen Wert immer kleiner ist, als der Vergleichswert und so die Session niemals zerstört wird. Trotzdem würde ich das in die andere Richtung (statt zu schnell läuft die Session jetzt nie ab) noch als mindestens genauso fehlerhaft einstufen.
Bist du dir da ganz sicher ?
So wie ich das System verstanden habe, wird folgendes überprüft:
$this->bbcode_second_pass_code('', '
if (strtotime(date("r")) - getsetting("LOGINTIMEOUT",900) > $session['lasthit']){
')
$session['lasthit'] (ein Timestamp)
ist der Zeitpunkt an dem das System das letze mal mitbekommen hat das der User existiert.
strtotime(date("r"))
ist dann die aktuelle Timestamp
getsetting("LOGINTIMEOUT",900)
das Timeout Setting, in diesem Falle 900 als Standart wert, wie auch bei mir eingestellt.
Nimmt man also an das das die aktuelle Timestamp - 900 Sekunden GRÖSSER ist als der Lasthit wert, so kann man davon ausgehen das die Session ein Timeout hatte.
Also MEHR als 900 Sekunden vergangen sind.
Ist der Wert kleiner, so sind noch NICHT 900 Sekunden vergangen sind und die Session bleibt erhalten.
Hab ich nun recht oder du? *g*
---
Zu PHP5:
Sicher treuben sich jetzt noch viele davor, die wenn man nicht schon heute seinen Code zumindest so aufbaut das eine leichtere Umsetzung möglich macht, bzw es so Konfiguriert das es auf beiden Systemen funktioniert.
Hat man in der Zukunft noch mehr Probleme den Umstieg auf PHP5 zu schaffen.