Session - Dauer der Benutzer-Sitzung

Wie lange eine Benutzersitzung (Session) gültig ist, hängt von unterschiedlichen Faktoren ab. Hinsichtlich Weblication® betrifft dies die Webserver-Umgebung (Apache, PHP) und den Client (Browser).

In den PHP-Einstellungen zur Domain regelt die Laufzeit-Konfiguration u.a. die Dauer einer Session. Im speziellen definiert die Konfigurationsoption session.gc-maxlifetime die "Anzahl der Sekunden, nach denen Daten als 'garbage' ('Müll') betrachtet und möglicherweise entsorgt werden" (Wortlaut php.net Doku).

Weblication® erstellt beim Login durch einen Benutzer ein Cookie, in welchem die Session-ID abgelegt wird. Dieses Cookie wird je nach Browser- bzw. Weblication® Konfigurationseinstellung beim Schließen des Browsers in der Regel wieder gelöscht. Sofern beim Login die Option "Angemeldet bleiben" aktiviert ist, wird beim Schließen des Browsers das Cookie nicht gelöscht und kann beim erneuten Öffnen weiter für die Session verwendet werden.
Dazu ist es wichtig, daß die PHP-Session mit der ID, welche im Cookie hinterlegt ist, weiterhin besteht.

Ist über den Garbage Collector eine Speicherbereinigung erfolgt und die PHP Session gelöscht, ist ein erneutes Anmelden in Weblication® erforderlich. Die Zeitspanne lässt sich zwar über die Einstellung zu session.gc_maxlifetime beeinflussen, ist aber aufgrund weiterer Webserver-Faktoren keine Sicherheit, daß die PHP-Session über diesen Zeitraum aufrechterhalten bleibt. Ihr Provider kann dazu ggf. mehr sagen.

Individuellen Laufzeit-Wert der Session festlegen

Ab Weblication® CMS Version 019.003.052.000 haben Sie die Möglichkeit, die Gültigkeitsdauer der Weblication PHP-Session individuell anzupassen.

Setzen Sie hierzu den Wert des maxlifetime-Attributes innerhalb des cookie-Tags  (zu sessions) auf den gewünschten Wert (z.B. "3600" für 3600 Sekunden).

Sofern das Tag in der default.wConf.php noch nicht vorhanden sein sollte, setzen Sie dies XML-Konform.
Speichern Sie die Konfigurationsdatei UTF-8 kodiert ab.

Beispiel: Auszug aus der /weblication/grid5/conf/default.wConf.php zur Session-Gültigkeit des Weblication® Cookies

<wConf version="19">
  ...
  <sessions>
    <cookie maxlifetime=""/>
  </sessions>
  ...
</wConf>

Hinweis

Die o.g. Einstellung hat nichts mit dem Ablaufdatum des WSESSIONID Cookies zu tun. Dies läuft in der Regel mit dem Sitzungsende ab. Das Ablaufdatum des Cookies kann durch Setzen der Option "angemeldet bleiben" bei Login über die Weblication® Loginmaske beeinflusst werden. Diese Option setzt das Ablaufdatum im Standard auf ca. 6 Tage.
Ist eine längere Sessiondauer gewünscht, kann dies über einen Conf-Eintrag ermöglicht werden.

FAQs
Von welchen Faktoren hängt die Gültigkeit einer Benutzersitzung (Session) ab?
Die Gültigkeit einer Session hängt von unterschiedlichen Faktoren ab, insbesondere von der Webserver-Umgebung (z.B. Apache, PHP) und vom Client (Browser). In Weblication® wird die Session zusätzlich über PHP-Einstellungen auf Domain-Ebene beeinflusst.
Wie wird die Session-Dauer in Weblication® auf PHP-Seite festgelegt?
In den PHP-Einstellungen zur Domain wird u.a. über die Konfigurationsoption (Garbage Collector) geregelt, nach wie vielen Sekunden Daten als „garbage“ (Müll) betrachtet und möglicherweise entsorgt werden. Dies wirkt sich auf die Lebensdauer der PHP-Session aus.
Was passiert mit der Session-ID bei Weblication® nach dem Login?
Beim Login erstellt Weblication® ein Cookie, in dem die Session-ID abgelegt wird. Ob dieses Cookie beim Schließen des Browsers wieder gelöscht wird, hängt von der Browser- bzw. Weblication® Konfiguration ab.
Welche Auswirkung hat die Option „Angemeldet bleiben“ beim Login?
Wenn beim Login die Option „Angemeldet bleiben“ aktiviert ist, wird das Cookie beim Schließen des Browsers in der Regel nicht gelöscht. Beim erneuten Öffnen kann die Session-ID weiterverwendet werden, sofern die zugehörige PHP-Session mit der Cookie-ID weiterhin besteht.
Wann ist ein erneutes Anmelden in Weblication® erforderlich?
Wenn über den Garbage Collector eine Speicherbereinigung erfolgt ist und die PHP Session gelöscht wurde, ist ein erneutes Anmelden in Weblication® erforderlich.
Kann die Sessiondauer allein über die PHP-Einstellung *session.gc_maxlifetime* garantiert werden?
Nein. Zwar lässt sich die Zeitspanne über *session.gc_maxlifetime* beeinflussen, jedoch gibt es weitere Webserver-Faktoren. Daher ist keine Sicherheit gegeben, dass die PHP-Session tatsächlich über den gesamten Zeitraum aufrechterhalten bleibt. Ihr Provider kann dazu ggf. weitere Informationen geben.
Ab welcher Weblication® CMS Version kann die Session-Gültigkeitsdauer individuell angepasst werden?
Ab Weblication® CMS Version 019.003.052.000 können Sie die Gültigkeitsdauer der Weblication PHP-Session individuell anpassen.
Wie kann ich in Weblication® die Session-Gültigkeitsdauer individuell anpassen?
Setzen Sie im *cookie*-Tag (unter *sessions*) das *maxlifetime*-Attribut auf den gewünschten Wert (z.B. „3600“ für 3600 Sekunden). Falls das Tag in der *default.wConf.php* noch nicht vorhanden ist, fügen Sie es XML-konform hinzu. Speichern Sie die Konfiguration als UTF-8.
Hat die Einstellung *maxlifetime* im *cookie*-Tag etwas mit dem Ablaufdatum des WSESSIONID Cookies zu tun?
Nein. Die Einstellung hat nichts mit dem Ablaufdatum des WSESSIONID Cookies zu tun. Dieses läuft in der Regel mit dem Sitzungsende ab. Das Ablaufdatum kann über die Login-Option „angemeldet bleiben“ beeinflusst werden und ist im Standard auf ca. 6 Tage gesetzt.
Wie kann eine längere Sessiondauer als Standard ermöglicht werden?
Eine längere Sessiondauer kann über einen entsprechenden Conf-Eintrag ermöglicht werden. Dazu gehört die individuelle Anpassung der Weblication PHP-Session-Gültigkeitsdauer über das *maxlifetime*-Attribut im *cookie*-Tag (unter *sessions*).