globe: eigener Session-Handler PHP5

Beitrag lesen

n'abend,

Vorweg: warum kann die session-lifetime nicht beeinflusst werden? Laut PHP Direktiven können session-Direktiven *überall* geändert werden. (in dem Fall sogar mittels ini_set() vor session_start() ;)

Von welcher Direktive sprechen wir denn überhaupt?
session.cache_expire - HTTP-Header (wie lange eine vom Server ausgelieferte Webseite vom Browser gespeichert werden kann, sofern der cache_limier das überhaupt zulässt)
session.cookie_lifetime - Cookie (wie lange die SessionID in einem Cookie gespeichert werden darf)
session.gc_maxlifetime - Interne Verarbeitung (wie alt Sessions sein müssen, bevor der [sehr unregelmäßig laufende] GarbageCollector aufräumt)

Es wird dir aber nicht unbedingt viel bringen - außer du läßt die Löschroutine komplett funktionslos und initiierst an ganz anderer Stelle einen eigenen Löschaufruf für alte Sessiondaten. Ob du dir damit viel unnötige Arbeit machst, hängt primär von der Antwort auf meine oberste Frage ab.

Soweit ich das überblicke, hat die "Löschroutine" nichts mit der session-lifetime zu tun. In der Doku von session_set_save_handler() ist eindeutig von "callback $destroy" die Rede. Das ist also die Funktion, die aufgerufen wird, wenn irgendwo im Script mal ein session_destroy() ausgeführt wird.

session_set_cookie_params()  kann benutzt werden, um die Einstellungen des Session-Cookies zu überschreiben. (mache ich bspw. weil ich eine Session über alle sub-Domains hinweg gebrauchen will).

In jedem Fall hat die Speicherung der Sessions in einer Datenbank aber nur dann einen Sinn, wenn man weitere Informationen abfragen können will. »Wer ist gerade online« würde mir da als erste "Sinnvolle" Abfrage in den Sinn kommen. Verschiebt man Sessions in einen anderen Kontext, möchte man aber definitiv sicherstellen, dass dieser der Belastung auch Standhält. MySQL's standard Tabellentreiber (MyISAM) nutzt Table-Locking. Sprich: für jeden Schreibzugriff wird die komplette Tabelle gesperrt. Reichlich dämlich, wenn man eigentlich viele kleine - eigentlich unabhängige - Pakete hat.

weiterhin schönen abend...

--
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|