un cache sessionné contamine les caches non sessionnés suivant
Dans une suite d'inclusion dynamique de squelettes, si l'un d'entre eux est sessionné, tous les squelettes suivants seront compilés comme sessionnés.
Jeu de test :
Squelette principal :
<INCLURE{fond=inclure/shouldbesafe}>
<INCLURE{fond=inclure/contaminant}>
<INCLURE{fond=inclure/shouldbesafetoo}>
noisette inclure/shouldbesafe :
HMMM ici ça devrait pas être sessionné !
noisette inclure/contaminant :
Vous êtes #SESSION{nom}
noisette inclure/shouldbesafetoo :
HMMMNNNNNN ici ça devrait pas être sessionné NON PLUS !
On constate que shouldbesafe est non sessionné et que contaminant est sessionné comme ils se doivent, mais que shouldbesafetoo est sessionné alors qu'il devrait ne pas l'être. Si on supprime l'inclusion de contaminant, shouldbesafetoo n'est pas sessionné.
Càd que la compilation de contaminant "contamine" le compilateur qui "contamine" shouldbesafetoo.
Dans le compilateur, c'est $GLOBALS['cache_utilise_session'] qui propage la nécessité de sessionner. Dans la fonction evaluer_fond, il est indiqué "il faut bien lever ce drapeau après avoir evalué le fond pour ne pas faire descendre le flag vers les inclusions appelees" : il semble que ça ne soit pas correctement fait dans tous les cas.