Login-Timeout konfigurieren
Author: Ing. Michael Fürst (m.fuerst@bluegate.at)
Web: http://www.bluegate.at
Publiziert: Februar 2007
Einleitung und Hinweise
Dieses Tutorial ist für die Version 3.0.4 SP 2.1 des XT:Commerce Shops ausgelegt. Die Anwendung des Tutorials erfolgt auf eigene Gefahr und der Author übernimmt keine Haftung für mögliche Schäden am System.
Problemstellung
Das Login (in den Kunden- oder Administrationsbereich) läuft nach zu kurzer Zeit aus (automatischer logout).
Das PHP Session Session Handling bei xt:Commerce
Der xt:Commerce Shop nutzt für die Abwicklung der Logins das von PHP bereitgestellte Session-Handling und hat somit keinen direkten Einfluss auf die Dauer der Sitzung. Hierfür greift PHP auf einen Session-Parameter in der php.ini zurück, die den Lebenszyklus einer Session festlegt.
Festlegen des Session Timeouts
Um die Lebenszeit der Session zu erhöhen, müssen Sie in der php.ini folgende Parameter Ihren Vorstellungen entsprechend anpassen:
session.gc_maxlifetime = 1440
session.cookie_lifetime = 0
Hier steht die 0 bei cookie_lieftime für "unendlich" (wenn die Session über Cookies abgewickelt wird). session.gc_lifetime legt fest, wann die Session als "Abfall" deklariert und entsorgt werden ("gc" = "Garbage collection"). In diesem Beispiel ist dies nach 1440 Sekunden der Fall.
Nachdem Sie die Parameter angepasst haben, müssen Sie den Webserver-Dienst neu starten (Apache, IIS etc.).
Workaround bei gesperrter php.ini
Bei manchen Providern ist es nicht möglich, die php.ini selbstständig zu ändern. In diesem Fall empfehle ich zuerst den Provider um die Änderung zu ersuchen. Sollte diese nicht möglich sein, können Sie die Lebenszeit der Session auch über die PHP Funktion ini_set() während der Laufzeit festlegen (Details zu ini_set() finden Sie unter http://www.php.net/ini_set).
Fügen Sie den Aufruf der ini_set Funktion in ein File ein, dass in jede Seite des Shop-Systems eingebunden wird (z.B. application_header.php).




















