Utilisation des sessions php dans 1.9.1

Bonjour à tous

J'ai un pb avec la ligne ajoutée par Spip au début des squelettes :
<!--a:2:{s:11:"process_ins";s:3:"php";s:7:"entetes";a:2:{s:12:"X-Spip-Cache";......

Cette ligne provoque une erreur (sauf au recalcul du squelette)
dès qu'on utilise les sessions php (par ex. session_register() ).

Comment faire ?
A+
    François

Bonjour à tous

J'ai un pb avec la ligne ajoutée par Spip au début des squelettes :
<!--a:2:{s:11:"process_ins";s:3:"php";s:7:"entetes";a:2:{s:12:
"X-Spip-Cache";......

Cette ligne provoque une erreur (sauf au recalcul du
squelette) dès qu'on utilise les sessions php (par ex.
session_register() ).

Comment faire ?
A+
    François

La présence de cette ligne est anormale, tu dois avoir un #ENV qui traîne
quelque part...

Olivier GENDRIN a écrit :

Bonjour à tous

J'ai un pb avec la ligne ajoutée par Spip au début des squelettes :
<!--a:2:{s:11:"process_ins";s:3:"php";s:7:"entetes";a:2:{s:12:
"X-Spip-Cache";......

Cette ligne provoque une erreur (sauf au recalcul du squelette) dès qu'on utilise les sessions php (par ex. session_register() ).

Comment faire ?
A+
    François

La présence de cette ligne est anormale, tu dois avoir un #ENV qui traîne
quelque part...

Peux-tu préciser ?

J'utilise #ENV{xxx} pour échanger des paramètres entre squelettes.
Les formulaires de login l'utilisent aussi.

Merci
    François

La 1ère ligne en cause est écrite en tête du squelette
dans ecrire/public/cacher.php :

n°ligne
194 // Enregistrer le fichier cache qui contient
  // 1) la carte d'identite de la page (ses "globals", genre id_article=7)
  // 2) son contenu
...
205 // l'enregistrer, compresse ou non...
  $chemin_cache .= $gz;
  ecrire_fichier(_DIR_CACHE . $chemin_cache,
    "<!-- "
    . str_replace("\n", " ", serialize($page['signal']))
    . " -->\n"
    . $page['texte']);

Cette "carte d'identite" est-elle indispensable ?
Peux-t-on la placer ailleurs ?

Merci de toute aide
    François

Olivier GENDRIN a écrit :
>> Bonjour à tous
>>
>> J'ai un pb avec la ligne ajoutée par Spip au début des squelettes :
>> <!--a:2:{s:11:"process_ins";s:3:"php";s:7:"entetes";a:2:{s:12:
>> "X-Spip-Cache";......
>>
>> Cette ligne provoque une erreur (sauf au recalcul du
>> squelette) dès qu'on utilise les sessions php (par ex.
>> session_register() ).
>>
>> Comment faire ?
>> A+
>> François
>
> La présence de cette ligne est anormale, tu dois avoir un #ENV qui
> traîne quelque part...
>
Peux-tu préciser ?

J'utilise #ENV{xxx} pour échanger des paramètres entre squelettes.
Les formulaires de login l'utilisent aussi.

Cette ligne apparaît quand tu écris #ENV sans paramètre dans ton squelette.

Merci
François

En fait, le problème est dans la fonction "restaurer_meta_donnees" dans cacher.php :
La première instruction
    if (preg_match("/^<!-- ([^\n]*) -->\n/ms", $contenu, $match)) {
ne détecte pas la "carte d'identité"... et donc la laisse dans le contenu à traiter !

Le pb semble venir de la détection de la fin de ligne...
J'ai modifié l'instruction comme ceci
    if (preg_match("/^<!-- ([^>]*) -->./ms", $contenu, $match)) {
et ça marche...

Je suis preneur d'une modification "officielle" car la fin de ligne peut avoir 2 caractères...

A+
    François

FGH a écrit :

La 1ère ligne en cause est écrite en tête du squelette
dans ecrire/public/cacher.php :

n°ligne
194 // Enregistrer le fichier cache qui contient
  // 1) la carte d'identite de la page (ses "globals", genre id_article=7)
  // 2) son contenu
...
205 // l'enregistrer, compresse ou non...
  $chemin_cache .= $gz;
  ecrire_fichier(_DIR_CACHE . $chemin_cache,
    "<!-- "
    . str_replace("\n", " ", serialize($page['signal']))
    . " -->\n"
    . $page['texte']);

Cette "carte d'identite" est-elle indispensable ?
Peux-t-on la placer ailleurs ?

Merci de toute aide
    François

* FGH tapotait, le 06/03/2007 12:58:

En fait, le problème est dans la fonction "restaurer_meta_donnees" dans cacher.php :
La première instruction
    if (preg_match("/^<!-- ([^\n]*) -->\n/ms", $contenu, $match)) {
ne détecte pas la "carte d'identité"... et donc la laisse dans le contenu à traiter !

Le pb semble venir de la détection de la fin de ligne...
J'ai modifié l'instruction comme ceci
    if (preg_match("/^<!-- ([^>]*) -->./ms", $contenu, $match)) {
et ça marche...

Je suis preneur d'une modification "officielle" car la fin de ligne peut avoir 2 caractères...

Si tu penses avoir levé un bug, fait un ticket ou un pos t sur spip dev.
Précise ta version de SPIP, de php, ton os, version d'apache...

--
RealET

Bonjour à tous

Sur les conseils de RealET je poste ce mail sur <dev>.
J'utilise la 1.9.1 [7502] sous easyPHP 1.6.0.0.

RealET a écrit :
> Si tu penses avoir levé un bug, fait un ticket ou un post sur spip dev.
> Précise ta version de SPIP, de php, ton os, version d'apache...
>

FGH a écrit :

Bonjour à tous

J'ai un pb avec la ligne ajoutée par Spip au début des squelettes :
<!--a:2:{s:11:"process_ins";s:3:"php";s:7:"entetes";a:2:{s:12:"X-Spip-Cache";......

Cette ligne provoque une erreur (sauf au recalcul du squelette)
dès qu'on utilise les sessions php (par ex. session_register() ).

Comment faire ?
A+
    François

> * FGH tapotait, le 06/03/2007 12:58:
>> En fait, le problème est dans la fonction "restaurer_meta_donnees"
>> dans cacher.php :
>> La première instruction
>> if (preg_match("/^<!-- ([^\n]*) -->\n/ms", $contenu, $match)) {
>> ne détecte pas la "carte d'identité"... et donc la laisse dans le
>> contenu à traiter !
>>
>> Le pb semble venir de la détection de la fin de ligne...
>> J'ai modifié l'instruction comme ceci
>> if (preg_match("/^<!-- ([^>]*) -->./ms", $contenu, $match)) {
>> et ça marche...
>>
>> Je suis preneur d'une modification "officielle" car la fin de ligne
>> peut avoir 2 caractères...

A+
    François

Erreur de destinataire...
Je l'ai posté sur <dev>.