[spip-dev] Pb avec le stockage du contexte en tête des fichiers du cache

Bonjour à tous

Comment inhiber la transmission du contexte que spip place en tête du html (avant <body>) :

<!--a:3:{s:8:"contexte";a:1:{s:11:"id_rubrique";i:34;}s:11:"process_ins";s:3:"php";s:7:"entetes";a:3:{s:12:"X-Spip-Cache";s:1:"0";s:13:"Cache-Control";s:35:"no-store, no-cache, must-revalidate";s:6:"Pragma";s:8:"no-cache";}} -->

Cela cause le warning suivant :
Warning: Cannot send session cookie - headers already sent by (output started at ......\ecrire\public.php(135) : eval()'d code:2) in ......\ecrire\public.php(135) : eval()'d code on line 42

NB: La ligne en cause et le warning associé n'apparaît que quand la page est prise dans le cache (tout est OK au recalcul de la page).

Merci pour toute aide.
    François

PS: Maintenant que tout est "évalué", il devient difficile de trouver les lignes mentionnées dans les messages d'erreur!!!
Comment faites-vous ???

non, ton probleme vient d'autre part.
Ce contexte n'est pas envoyé tel quel sur le flux de sortie

Cédric

Bonjour à tous

J'ai ajouté une trace dans ecrire/public.php qui affiche le début du fichier traité:
ligne 135: echo "<p><xmp>".substr($page['texte'],0,2000)."</xmp></p>\n";
ligne 136: eval('?' . '>' . $page['texte']); // ligne 135 d'origine
NB: Je suis sous spip 1.917

Voici ce que j'obtiens:
<!-- no-cache, must-revalidate";s:6:"Pragma";s:8:"no-cache";}} -->
<?php ///=================================================================================== /// Fichier : rubrique.html ///=================================================================================== ///
/// Affichage d'une rubrique
///
/// Paramètres :
/// id_rubrique Rubrique courante
///
/// Variables globales :
/// ///=================================================================================== include('plugins/boutique/inc/boutique_classes.php'); session_register('boutique_panier');
$boutique_panier = $HTTP_SESSION_VARS['boutique_panier'];
//---------------------------------------------------------------------
?>
... quelques lignes blanches...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" lang="fr">
<head>
ligne 29<title>....................

ce qui est le début du fichier "CACHE/c/-web-spip%3Frubrique22.0222c31d" correspondant à mon url "http://localhost/…/spip.php?rubrique22".

Le message d'erreur généré est
Warning: Cannot send session cache limiter - headers already sent (output started at d:\rack_fgh\sites_web\webhtml\sitemcfa\webmcfa\ecrire\public.php:135 : eval()'d code:2) in d:\rack_fgh\sites_web\webhtml\sitemcfa\webmcfa\ecrire\public.php(136) : eval()'d code on line 29

La ligne "$boutique_panier = $HTTP_SESSION_VARS['boutique_panier'];" porte le n°17 dans mon éditeur... mais c'est surement celle qui génère l'erreur...

L'erreur est donc bien provoquée par la 1ère ligne du fichier dans le cache.

Le squelette "rubrique.html" est le suivant:
<?php
///===================================================================================
/// Fichier : rubrique.html
///===================================================================================
///
/// Affichage d'une rubrique
///
/// Paramètres :
/// id_rubrique Rubrique courante
///
/// Variables globales :
///
///===================================================================================
#INSERT_HEAD
[(#REM) Balise INSERT_HEAD permettant aux plugins d'inserer des appels javascript ou css ]
[(#REM) NB: Utilisée par le plugin "Boutique", doit être placée avant tout code retourné au client http ]

#CACHE{24*3600}
#CACHE{0}

//---------------------------------------------------------------------
?>
<BOUCLE_principale(RUBRIQUES){id_rubrique}>
..............

Le squelette compilé est le suivant:
//
// Fonction principale du squelette Squelettes/rubrique.html
//
function html_84ce7c20bef85320d08876707c02f8e5($Cache, $Pile, $doublons=array(), $Numrows=array(), $SP=0) {
  $page = ('<?php
///===================================================================================
/// Fichier : rubrique.html
///===================================================================================
///
/// Affichage d\'une rubrique
///
/// Paramètres :
/// id_rubrique Rubrique courante
///
/// Variables globales :
///
///===================================================================================
' .
pipeline('insert_head','') .
..............

Merci pour toute aide
    François

cedric.morin@yterium.com a écrit :