Malheureusement, cela me donne le warning suivant :
Warning: Cannot add header information - headers already sent by (output
started at D:\Mes documents\lecercle\private\include\design.inc.php:17) in
d:\mes documents\lecercle\public\actualites\ecrire\inc_version.php3 on line 181
En effet, ma fonction pageHeader() a déjà envoyé un contenu HTML, et les
headers ne peuvent donc plus être envoyés ...
Je suppose que c'est un problème qui risque de revenir souvent, donc il
faudrait penser à une solution plus modulaire ou tout est dans des fonctions
appelées par 'spipHeaders()' et 'spipContent()', ce qui pourrait donner :
On obtiendrait ainsi une énorme souplesse pour l'intégration de SPIP à des
sites existants. Par exemple, un site géré globalement par daCode, mais avec
les articles (mieux) gérés par SPIP ...
Warning: Cannot add header information - headers already sent [...]
En effet, ma fonction pageHeader() a déjà envoyé un contenu HTML,
et les headers ne peuvent donc plus être envoyés ...
Grace à Fil (merci !) qui m'a suggéré d'aller voir du côté de l'Output
Buffering (http://zend.com/zend/art/buffering.php), voici une solution qui
marche au moins pour moi :
C'est une collection compl=E8te, aujourd'hui! Modification sur le fichier:
/inc-public.php3
Ca corrige le bug des p=E9titions qui ne se signaient plus (LSIjolie,
idem sur uZine...).
Il risque d'y avoir d'autres probl=E8mes similaires. Ca vient du
"/ecrire/inc-version.php3", qui semble r=E9initialiser les variables
d'environnement (un truc comme =E7a, hein, je sais pas trop =E0 quoi sert
la fonction reset_kekchose()). Du coup, chaque fois qu'on fait appel
=E0 une variable de l'URL, =E7a semble merder (ici, c'=E9tait $val qui
s'=E9tait perdu en cours de route).
Il risque d'y avoir d'autres problèmes similaires. Ca vient du
"/ecrire/inc-version.php3", qui semble réinitialiser les variables
d'environnement (un truc comme ça, hein, je sais pas trop à quoi sert
la fonction reset_kekchose()). Du coup, chaque fois qu'on fait appel
à une variable de l'URL, ça semble merder (ici, c'était $val qui
s'était perdu en cours de route).
Ah je vois ;)) La partie qui traite les variables passées en paramètre
utilise une ligne du genre while (list($key, $val) = each($HTTP_GET_VARS)).
Du coup, les variables d'URL nommées $key et $val ne passent plus....
Soit on modifie ces noms dans inc_version, soit on s'astreint (ce qui
est plus propre) à utiliser des variables d'url explicites (par exemple
$pass_petition au lieu de $val, etc).
Sinon j'ai retrouvé le message qui parle de propre et typo :
Ah je vois ;)) La partie qui traite les variables passées en paramètre
utilise une ligne du genre while (list($key, $val) = each($HTTP_GET_VARS)).
Du coup, les variables d'URL nommées $key et $val ne passent plus....
Il faudrait des variables locales, faire une fonction quoi...
Désolé, mais ça ne résout pas le problème. si $val est un jour
utilisé ailleurs, ça va foirer de nouveau. Il faut utiliser des
variables explicites pour le passage de paramètres et tout ce
qui ressemble à des données persistantes (i.e. éviter $i, $val,
$toto, etc.). C'est pas la première fois que je le signale, d'ailleurs,
m'enfin :))