[spip-dev] [2.0.7] Régression sur la prise en compte des paramètres dans l'URL

Bonsoir,

J'ai cherché et j'ai trouvé.
En 2.0.7, avec id_mot=27 dans l'url :
              #EVAL{_request('id_mot1')}
#ENV{'id_mot1'}
#ID_MOT1

Ne renvoie un résultat que pour la première ligne.

En 2.0.6, les 3 renvoient 27.

RealET a écrit :

En 2.0.7, avec id_mot=27 dans l'url :
#EVAL{_request('id_mot1')}
#ENV{'id_mot1'}
#ID_MOT1
Ne renvoie un résultat que pour la première ligne.
En 2.0.6, les 3 renvoient 27.

je reproduis pas...

avec id_mot=27 dans l'url
   #EVAL{_request('id_mot1')}
   <br>#ENV{'id_mot1'}
   <br>#ENV{id_mot1}
   <br>#ID_MOT1
ne me renvoient rien

avec id_mot1=27 dans l'url
   #EVAL{_request('id_mot1')}
   <br>#ENV{'id_mot1'}
   <br>#ENV{id_mot1}
   <br>#ID_MOT1
me renvoient tous les 4 : 27

* denisb tapuscrivait, le 15/04/2009 08:55:

RealET a écrit :

En 2.0.7, avec id_mot=27 dans l'url :
#EVAL{_request('id_mot1')}
#ENV{'id_mot1'}
#ID_MOT1
Ne renvoie un résultat que pour la première ligne.
En 2.0.6, les 3 renvoient 27.

je reproduis pas...

avec id_mot=27 dans l'url
  #EVAL{_request('id_mot1')}
  <br>#ENV{'id_mot1'}
  <br>#ENV{id_mot1}
  <br>#ID_MOT1
ne me renvoient rien

Oups, j'avais oublié le 1 dans mon mail

avec id_mot1=27 dans l'url
  #EVAL{_request('id_mot1')}
  <br>#ENV{'id_mot1'}
  <br>#ENV{id_mot1}
  <br>#ID_MOT1
me renvoient tous les 4 : 27

Bon, je viens de retester sur un SPIP (mutualisé) sans plugin
J'ai le même bug.
J'ai identifié la révision qui fait planter : 13845
Et 13844 c'est bon, plus en 13845

Et je suis en URL par défaut : page

* denisb tapuscrivait, le 15/04/2009 08:55:

RealET a écrit :

En 2.0.7, avec id_mot=27 dans l'url :
#EVAL{_request('id_mot1')}
#ENV{'id_mot1'}
#ID_MOT1
Ne renvoie un résultat que pour la première ligne.
En 2.0.6, les 3 renvoient 27.

je reproduis pas...

Peut-être devrais-je préciser que je suis dans un contexte de squelette de rubrique en mode d'url page :
spip.php?rubrique1&id_mot1=27&var_mode=recalcul

* denisb tapuscrivait, le 15/04/2009 08:55:

RealET a écrit :

En 2.0.7, avec id_mot=27 dans l'url :
#EVAL{_request('id_mot1')}
#ENV{'id_mot1'}
#ID_MOT1
Ne renvoie un résultat que pour la première ligne.
En 2.0.6, les 3 renvoient 27.

je reproduis pas...

Et que si je fais :
http://mutu.local/spip.php?page=rubrique&id_rubrique=1&id_mot1=27&var_mode=recalcul
Alors, là, ça marche.

* RealET tapuscrivait, le 15/04/2009 17:16:

* denisb tapuscrivait, le 15/04/2009 08:55:

RealET a écrit :

En 2.0.7, avec id_mot=27 dans l'url :
#EVAL{_request('id_mot1')}
#ENV{'id_mot1'}
#ID_MOT1
Ne renvoie un résultat que pour la première ligne.
En 2.0.6, les 3 renvoient 27.

je reproduis pas...

avec id_mot=27 dans l'url
  #EVAL{_request('id_mot1')}
  <br>#ENV{'id_mot1'}
  <br>#ENV{id_mot1}
  <br>#ID_MOT1
ne me renvoient rien

Oups, j'avais oublié le 1 dans mon mail

avec id_mot1=27 dans l'url
  #EVAL{_request('id_mot1')}
  <br>#ENV{'id_mot1'}
  <br>#ENV{id_mot1}
  <br>#ID_MOT1
me renvoient tous les 4 : 27

Bon, je viens de retester sur un SPIP (mutualisé) sans plugin
J'ai le même bug.
J'ai identifié la révision qui fait planter : 13845
Et 13844 c'est bon, plus en 13845

Et je suis en URL par défaut : page

On dirait bien que $suite = $regs[3];
qui contient &id_mot1=27 ne soit pas transmis par le return.
Il est donc perdu...

* RealET tapuscrivait, le 15/04/2009 17:21:

* denisb tapuscrivait, le 15/04/2009 08:55:

RealET a écrit :

En 2.0.7, avec id_mot=27 dans l'url :
#EVAL{_request('id_mot1')}
#ENV{'id_mot1'}
#ID_MOT1
Ne renvoie un résultat que pour la première ligne.
En 2.0.6, les 3 renvoient 27.

je reproduis pas...

Peut-être devrais-je préciser que je suis dans un contexte de squelette de rubrique en mode d'url page :
spip.php?rubrique1&id_mot1=27&var_mode=recalcul

ça se confirme : en mode propre2 :
-rubrique1-.html?id_mot1=27
ça marche.

RealET a écrit :

Peut-être devrais-je préciser que je suis dans un contexte de squelette de rubrique en mode d'url page :
spip.php?rubrique1&id_mot1=27&var_mode=recalcul

oki.
effectivement.
les args ($suite donc) ne passent pas.

super, encore un bug sur les urls ...
on va jamais s'en sortir à ce train là.
Même si il est difficile d'automatiser un test, il faudrait au moins compiler tous les cas critiques/buggués que l'on a rencontré dans un fichier qui permette de couvrir tous les cas en cas de modif, ou même en cas de correctif, pour s'assurer que l'on ne regresse pas.

Cédric

cedric.morin@yterium.com a écrit :

super, encore un bug sur les urls ...
on va jamais s'en sortir à ce train là.

alors on doit pouvoir patcher.

dans ecrire/urls/page.php, lignes 73,

remplacer :
   $id_objet = $regs[2];
   $suite = $regs[3];
   $contexte = array($_id => $id_objet);
   return array($contexte, $type, null, $type);
}

par :
   $id_objet = $regs[2];
   $suite = $regs[3];
   $contexte[$_id] = $id_objet; // ici le patch !
   return array($contexte, $type, null, $type);
}

denisb a écrit :

cedric.morin@yterium.com a écrit :

super, encore un bug sur les urls ...
on va jamais s'en sortir à ce train là.

alors on doit pouvoir patcher.

ha mais aussi bug avec : spip.php?site7 :
   Erreur(s) dans le squelette
   1 Aucun squelette 'syndic.html' n'est disponible...
   2 Erreur de compilation

appel d'un site syndiqué avec les urls page ;
les autres modes urls fonctionnent...

S'lt

ha mais aussi bug avec : spip.php?site7 :
Erreur(s) dans le squelette
1 Aucun squelette 'syndic.html' n'est disponible...
2 Erreur de compilation

appel d'un site syndiqué avec les urls page ;
les autres modes urls fonctionnent...

Je crois que celui ci est plus vieux, en tout cas j'ai souvenir de
l'avoir deja rentré dans des versions antérieures

Km

cam.lafit@azerttyu.net a écrit :

Je crois que celui ci est plus vieux, en tout cas j'ai souvenir de
l'avoir deja rentré dans des versions antérieures

alors on doit pouvoir patcher (suite).

dans ecrire/urls/page.php, lignes 73,

remplacer :
   $id_objet = $regs[2];
   $suite = $regs[3];
   $contexte = array($_id => $id_objet);
   return array($contexte, $type, null, $type);
}

par :
   $id_objet = $regs[2];
   $suite = $regs[3];
   $contexte[$_id] = $id_objet; // patch request_uri !!
   if ($type == 'syndic') $type = 'site'; // patch syndic.html !!
   return array($contexte, $type, null, $type);
}

denisb a écrit :

  $id_objet = $regs[2];
  $suite = $regs[3];
  $contexte[$_id] = $id_objet; // patch request_uri !!
  if ($type == 'syndic') $type = 'site'; // patch syndic.html !!
  return array($contexte, $type, null, $type);
}

on prendra bien soin (évidemment et cela va sans dire) de reporter
ces patch sur ecrire/urls/html.php lignes 78

* denisb tapuscrivait, le 18/04/2009 23:52:

denisb a écrit :

  $id_objet = $regs[2];
  $suite = $regs[3];
  $contexte[$_id] = $id_objet; // patch request_uri !!
  if ($type == 'syndic') $type = 'site'; // patch syndic.html !!
  return array($contexte, $type, null, $type);
}

on prendra bien soin (évidemment et cela va sans dire) de reporter
ces patch sur ecrire/urls/html.php lignes 78

ça résout peut-être syndic.html
Mais ça ne résout pas spip.php?rubrique1&id_mot1=27
Testé avec http://trac.rezo.net/trac/spip/changeset/13899
En mode page.

RealET a écrit :

Mais ça ne résout pas spip.php?rubrique1&id_mot1=27

sans doute à cause du 27*...

en 2.0.7, avec (depuis ecrire/?exec=config_fonctions) :
   urls = page — spip.php?article12
et après avoir ajouté
   <p>#ENV{'id_mot1'} - #ENV{id_mot1} - #ID_MOT1</p>
sur ma page rubrique.html

en appelant l'url :
   spip.php?rubrique2&id_mot1=56

j'ai bien :
   56 - 56 - 56

* : gag

* denisb tapuscrivait, le 19/04/2009 16:31:

RealET a écrit :

Mais ça ne résout pas spip.php?rubrique1&id_mot1=27

sans doute à cause du 27*...

en 2.0.7, avec (depuis ecrire/?exec=config_fonctions) :
  urls = page — spip.php?article12
et après avoir ajouté
  <p>#ENV{'id_mot1'} - #ENV{id_mot1} - #ID_MOT1</p>
sur ma page rubrique.html

en appelant l'url :
  spip.php?rubrique2&id_mot1=56

j'ai bien :
  56 - 56 - 56

* : gag

Pas mieux chez moi avec 56 :frowning:

* RealET tapuscrivait, le 19/04/2009 16:36:

* denisb tapuscrivait, le 19/04/2009 16:31:

RealET a écrit :

Mais ça ne résout pas spip.php?rubrique1&id_mot1=27

sans doute à cause du 27*...

en 2.0.7, avec (depuis ecrire/?exec=config_fonctions) :
  urls = page — spip.php?article12
et après avoir ajouté
  <p>#ENV{'id_mot1'} - #ENV{id_mot1} - #ID_MOT1</p>
sur ma page rubrique.html

en appelant l'url :
  spip.php?rubrique2&id_mot1=56

j'ai bien :
  56 - 56 - 56

* : gag

Pas mieux chez moi avec 56 :frowning:

Bon, sur IRC, je viens de me rendre compte que le commit avait été fait sur la branche 2.1 alors que je testait la branche 2.0.7...

* RealET tapuscrivait, le 19/04/2009 16:52:

* RealET tapuscrivait, le 19/04/2009 16:36:

* denisb tapuscrivait, le 19/04/2009 16:31:

RealET a écrit :

Mais ça ne résout pas spip.php?rubrique1&id_mot1=27

sans doute à cause du 27*...

en 2.0.7, avec (depuis ecrire/?exec=config_fonctions) :
  urls = page — spip.php?article12
et après avoir ajouté
  <p>#ENV{'id_mot1'} - #ENV{id_mot1} - #ID_MOT1</p>
sur ma page rubrique.html

en appelant l'url :
  spip.php?rubrique2&id_mot1=56

j'ai bien :
  56 - 56 - 56

* : gag

Pas mieux chez moi avec 56 :frowning:

Bon, sur IRC, je viens de me rendre compte que le commit avait été fait sur la branche 2.1 alors que je testait la branche 2.0.7...

Résolu par http://trac.rezo.net/trac/spip/changeset/13901