Bonjour,
Sur un SPIP mutualisé (mais il me semble que c'est idem si non mutualisé) j'ai un plugin qui utilise le pipeline
'preparer_fichier_session'.
La fonction du pipeline 'preparer_fichier_session' utilise une fonction ('ent_inrub') et une variable super globale
($GLOBALS['valniv']) que j'utilise aussi ailleurs (j'y ai ajouter aussi un define pour le test :
define('_AP_VALNIV',...);). Ce pipeline ajoute des variables sessions.
Premier bug : en mettant la fonction et la variable dans mes_options du plugin : ils ne sont pas reconnus, je les ai
donc mis dans mes_options du répertoire config (c'est pas trés propre pour un plugin mais bon).
Maintenant j'ai juste un drole de bug : au lendemain, quand je me reconnecte (pas déconnecté de la veille), le pipeline
est appeler deux fois, la première c'est ok, la deuxième : la variable est vide mais la fonction ('ent_inrub') est bien
existante !!! ce qui a pour effet de ne pas mettre en place une variable dans les paramètres de session.
Les deux appels du pipeline se font sans appel d'une autre page car mes_options n'est pas recharger.
J'ai placer deux sniffers de debug dans mes_options et la fonction 'preparer_fichier_session'.
Dans mes_options :
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/ap_debug.txt','Charger ! '._DIR_TMP.' -
'.$_SERVER['REQUEST_URI']."\r\n**********\r\n",FILE_APPEND);
Dans la fonction 'preparer_fichier_session' du plugin :
$pourlog=array('ent_inrub'=>0,'include_spip'=>0);
foreach($pourlog as $cle=>$val) {
if(function_exists($cle)) $pourlog[$cle]=1;
}
if(isset($GLOBALS['valniv'])) $pourlog['valniv']=$GLOBALS['valniv'];
$pourlog['rep']=_DIR_TMP;
$pourlog['session']=_DIR_SESSIONS;
if(!defined('_AP_VALNIV')) define('_AP_VALNIV','ERREUR');
$pourlog['def_valniv']=_AP_VALNIV;
$pourlog['flux']=$flux; // ajouter dans session.php le $fichier : a supprimer apres test
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/ap_debug.txt',print_r($pourlog,true)."\r\n**********\r\n",FILE_APPEND);
Et voilà ce que donne le fichier 'ap_debug.txt' au matin à la première connection de la journée (nota : j'ai ajouter
dans args du flux du pipeline le nom du fichier de session : il change !!!) :
Charger ! sites/********/tmp/ - /spip.php?page=login