Session-Zeit funktioniert nicht richtig

ini_set sollte damit funktionieren. Oder ich irre mich sehr.

Zum Beispiel:
PHP:
ini_set('session.gc_maxlifetime',7200);

// Oder in der PHP.ini ändern, falls Rechte vorhanden...
 
Zuletzt bearbeitet:
PHP:
session_save_path("/.....");
ini_set("session.gc_maxlifetime","7200");

Das beides sollte ausreichen?
Ich habe es in die index.php gesteckt, die bei jedem Seitenaufruf aufgerufen wird.
 
Mit dieser Einstellung kann es höchstens vorkommen, dass die Sitzung zeitgleich mit dem Freischalten des neuen Features gelöscht wird.

Wieso speicherst du den Wert überhaupt in der Sitzung und nicht an einem „weniger flüchtigen“ Ort, beispielsweise in der Datenbank?
 
Mit dieser Einstellung kann es höchstens vorkommen, dass die Sitzung zeitgleich mit dem Freischalten des neuen Features gelöscht wird.

Naja, die Session soll sowieso nach 7200 gelöscht werden. Daher denke ich auch, dass das mit der maxlifetime nicht wirklich mein Problem behebt. Da die Session bei einigen Usern nichtmal nach 7200 gelöscht wird, sondern immer noch existiert, bzw. ein falschen Zeitwert annimt. :(
 
Der session.gc_maxlifetime-Wert wird sowieso nur dann berücksichtigt, wenn der Garbage Collector ausgeführt wird. Und das ist wiederum von den Werten session.gc_probability und session.gc_divisor abhängig, die mit der Formel gc_probability/gc_divisor die Wahrscheinlichkeit festlegen, mit der der Garbage Collector gestartet wird. Die Standardwerte sind hier 1 beziehungsweise 100, was also eine Wahrscheinlichkeit von 1/100=1% ergibt, der Garbage Collector also nur in 1% aller session_start()-Aufrufe ebenfalls gestartet wird.

Deswegen sollte auch eine eigener Mechanismus implementiert werden, der die Lebensdauer der aktuellen Sitzung prüft und diese gegebenenfalls ungültig macht.
 
Danke Gumbo, damit bin ich schlauer geworden, aber eine Lösung meines Problems nicht aus deinem Beitrag finden können. ;) :(
 
Zurück