Session Garbage Collection

Dieses Forum enthält Diskussionen zu Bugs in ConPresso 4 und deren Lösungen.
Antworten
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Session Garbage Collection

Beitrag von MarkusR »

Ich musste feststellen, dass in meinen Installationen unter PHP 7.2 und 7.3 die Session Garbage Collection nicht funktioniert, weil session.gc_probability auf 0 steht und sich auch nicht mittels ini_set('session.gc_probability', 1) aktivieren lässt.
Warum das so ist konnte ich nicht rauskriegen, laut PHP-Doku sollte das per ini_set funktionieren, tut es aber nicht.
Damit ist die in sessiondb.inc.php gewählte Aktivierung per ini_set wirkungslos und die anschließende Nutzung des vermeintlich gesetzten Wertes erfolglos.

Daher habe ich das jetzt mal geändert.

In sessiondb.inc.php

Code: Alles auswählen

function sessionDB_open($save_path, $session_name)
{
    // Workaround for Debian systems with disabled GC 
    if (ini_get('session.gc_probability')==0) @ini_set('session.gc_probability', 1);

    if (rand(1, ini_get('session.gc_divisor'))<=ini_get('session.gc_probability'))
        sessionDB_gc(ini_get('session.gc_maxlifetime'));
    return true;
}
wird zu

Code: Alles auswählen

function sessionDB_open($save_path, $session_name)
{
    // Workaround for Debian systems with disabled GC 
    if (ini_get('session.gc_probability')==0 && rand(1, ini_get('session.gc_divisor'))<=1)
        sessionDB_gc(ini_get('session.gc_maxlifetime'));
    return true;
}
Es wird also gar nicht mehr versucht den Wert auf 1 zu setzen sondern stattdessen wird von 1 (also aktiv) ausgegangen und somit die Garbage Collection gemäß Divisor ausgeführt.

edit: und gerade habe ich festgestellt, dass ich das schon mal im Mai 2010 mit der fixen "1" hier im Forum geschrieben hatte und Balu dazu die ini_set-Lösung "nur im Forum" schrieb, die dann aber doch als Code Einzug in CPO hielt...
http://community.conpresso.de/viewtopic ... 6001#26001
aber leider funktioniert ini_set nun nicht...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Antworten