/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
- * Copyright (c) 2001-2011 *
+ * Copyright (c) 2001-2014 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
time() + $duree
);
spip_log("ajoute session $fichier_session cookie $duree");
+
+ // purger au passage les vieux fichiers de session
+ supprimer_sessions(-1);
+
return $_COOKIE['spip_session'];
}
}
// Lire une valeur dans la session SPIP
// http://doc.spip.org/@session_get
function session_get($nom) {
- return $GLOBALS['visiteur_session'][$nom];
+ return isset($GLOBALS['visiteur_session'][$nom]) ? $GLOBALS['visiteur_session'][$nom] : null;
}
// Quand on modifie une fiche auteur on appelle cette fonction qui va
$GLOBALS['visiteur_session'] = $sauve;
// si c'est le meme, rafraichir les valeurs
- if ($auteur['id_auteur'] == $sauve['id_auteur'])
+ if (isset($sauve['id_auteur']) and $auteur['id_auteur'] == $sauve['id_auteur'])
verifier_session();
}
if (!preg_match(",^\D*(\d+)_\w{32}\.php[3]?$,", $e, $r))
continue;
$f = _DIR_SESSIONS . $e;
- if (($id_auteur AND ($r[1] == $id_auteur))
- OR ($t > filemtime($f))) {
+ if (file_exists($f) AND (($id_auteur AND ($r[1] == $id_auteur))
+ OR ($t > filemtime($f)))) {
spip_unlink($f);
$i++;
}
verifier_session();
spip_unlink(fichier_session('alea_ephemere', true));
}
- spip_log("destruction des $i fichiers de session de $id_auteur et 0");
+ if ($i) spip_log("destruction des $i fichiers de session de $id_auteur et 0");
// forcer le recalcul de la session courante
spip_session(true);
}