[gestion sessions] : suppression de session inutilisée
Lors de l'authentification d'un utilisateur un nouveau fichier de session est créé et tous les fichiers des sessions existants sont mis à jour à cause du changement des champs "maj" et "date_session". Effet de bort : si un utilisateur s'authentifie en boucle sans jamais se délogger le répertoire tmp/sessions/ se rempli sans jamais être vidé.
Le problème se situe ici :
https://git.spip.net/spip/spip/src/branch/master/ecrire/inc/session.php#L472
L'idée proposé pour résoudre ce problème consiste à comparer plus finement les sessions avant de les mettre à jour :
ajout de la fonction :
/** * Comparer deux sessions * */ function comparer_sessions($a, $b) { if ($a == $b) { return true; } unset($a['maj'], $a['date_session']); unset($b['maj'], $b['date_session']); return $a == $b; }
et de modifier https://git.spip.net/spip/spip/src/branch/master/ecrire/inc/session.php#L472 pour l'utiliser :
if ( ! comparer_sessions($auteur_session, $GLOBALS['visiteur_session']) ) {