[spip-dev] Connect sur base non spip, critere Bigint, int

S'l

Je suis en train de tester une boucle (spip 203)

<BOUCLE_etiquette(monconnect:TABLEX) {code_perso} >
    #CODE_PERSO
</BOUCLE_etiquette>

La table declare #CODE_PERSO comme un BIGINT(20)

Si je transmet mon code via l'url par exemple 15469210100900 celui est
converti pour la requete SQL en 2147483647 (version INT de mon BIGINT)

pour le moment je triche avec ça (beurk)

<BOUCLE_etiquette(monconnect:TABLEX) {code_perso == #ENV{code_perso}} >
    #CODE_PERSO
</BOUCLE_etiquette>

Est ce normal docteur ?

km

Non, et c'est calculer_critere_infixe qui en est responsable, car elle insère un "intval" dans un souci de sécurité. Plutôt que "intval(E)" il faudrait produire "is_numeric($n = E) ? $n : 0" mais
ce nom "$n" devrait plutôt être calculé pour éviter les conflits de nom car le code compilé commence à contenir beaucoup de ces variables auxiliaires, je ne sais plus où on en est.

Committo,Ergo:Sum

S'l

Je suis en train de tester une boucle (spip 203)

<BOUCLE_etiquette(monconnect:TABLEX) {code_perso} >
  #CODE_PERSO
</BOUCLE_etiquette>

La table declare #CODE_PERSO comme un BIGINT(20)

Si je transmet mon code via l'url par exemple 15469210100900 celui est
converti pour la requete SQL en 2147483647 (version INT de mon BIGINT)

C'est réparé sur les 2 branches avec 13858.

Committo,Ergo:Sum

S'lt

Nickel ça roule comme il faut sur la version stable.

grazie mille

Km