Si on transmets un flottant, verifier_entier_dist ne renvoie pas d’erreur. Pourtant 4.45 n’est pas un nombre entier.
Il ne manque pas une vérif ? ou au moins ajouter une option demandant un entier strict ?
Joseph
Si on transmets un flottant, verifier_entier_dist ne renvoie pas d’erreur. Pourtant 4.45 n’est pas un nombre entier.
Il ne manque pas une vérif ? ou au moins ajouter une option demandant un entier strict ?
Joseph
Le 8 avril 2010 00:25, Joseph LARMARANGE <joseph@larmarange.net> a écrit :
Si on transmets un flottant, verifier_entier_dist ne renvoie pas d'erreur.
Pourtant 4.45 n'est pas un nombre entier.Il ne manque pas une vérif ? ou au moins ajouter une option demandant un
entier strict ?
Le code ne conserve que la partie entière :
if (is_numeric($valeur)){
// Si c'est une chaine on convertit en entier et si c'est un
flottant on ne garde que l'entier
$valeur = intval($valeur);
$ok = true;
$erreur = '';
--
@plus
Jacques
Pour les lyonnais++ spip-lyon@rezo.net http://spip-party.net/-Lyon-
Le 08/04/2010 00:55, Jacques J. a écrit :
Le 8 avril 2010 00:25, Joseph LARMARANGE<joseph@larmarange.net> a écrit :
Si on transmets un flottant, verifier_entier_dist ne renvoie pas d'erreur.
Pourtant 4.45 n'est pas un nombre entier.Il ne manque pas une vérif ? ou au moins ajouter une option demandant un
entier strict ?Le code ne conserve que la partie entière :
Oui c'est ça.
Le problème dans l'état actuel c'est que le plugin ne fait que la vérification sans modifier réellement la valeur existante. Ce qui fait qu'il faudrait ensuite de nouveau couper la valeur une fois arrivé dans traiter() avec un intval().
Ce qu'il faudrait c'est que le plugin puisse aussi opérer des transformations sur les valeurs et renvoyer à la fois un message d'erreur (ou pas) mais aussi une valeur modifié. On avait déjà parlé de ça avec xdjuj sur IRC.
L'idée est plutôt bien et ne pose pas de problème au niveau du plugin, mais se pose ensuite la question de CVT : dans la partie "verifier" on ne peut PAS modifier une valeur et qu'elle reste comme ça dans "traiter".
Peut-être avec un set_request() ? Qu'en dit Cédric ?
--
RastaPopoulos
Le 08/04/2010 08:57, RastaPopoulos a écrit :
Ce qu'il faudrait c'est que le plugin puisse aussi opérer des
transformations sur les valeurs et renvoyer à la fois un message
d'erreur (ou pas) mais aussi une valeur modifié. On avait déjà parlé de
ça avec xdjuj sur IRC.
Bof, c'est pas pareil de demander un entier,
et de demander quelquechose qu'on peut transformer en entier.
Dans le cas où on veut "quelque chose qu'on peut transformer en entier",
il faut un autre type de verifier.
Et à mon avis, verifier doit, pour cet autre type seulement,
verifier si la valeur peut être transformée en entier,
et ce serait plutôt à traiter de transformer ensuite.
Eventuellement, il pourrait y avoir un 4ème argument optionnel à verifier
qui indiquerait qu'on ne vérifie pas mais qu'on traite
et qui permettrait de l'appeler utilement dans traiter
(ou une autre option des saisies : traiter)
JLuc
Le 08/04/2010 10:11, JLuc a écrit :
Bof, c'est pas pareil de demander un entier,
et de demander quelquechose qu'on peut transformer en entier.
Dans le cas où on veut "quelque chose qu'on peut transformer en entier",
il faut un autre type de verifier.
Et à mon avis, verifier doit, pour cet autre type seulement,
verifier si la valeur peut être transformée en entier,
et ce serait plutôt à traiter de transformer ensuite.Eventuellement, il pourrait y avoir un 4ème argument optionnel à verifier
qui indiquerait qu'on ne vérifie pas mais qu'on traite
et qui permettrait de l'appeler utilement dans traiter
(ou une autre option des saisies : traiter)
Oulala, tu pars dans d'ces trucs compliqués...
Je rappelle que les vérifications peuvent avoir des options. Donc c'est juste la vérification "entier" avec une option du genre "transformer la valeur en entier si c'est possible". Rien de plus.
Et le but c'est quand même de simplifier les choses, donc ça serait bien de pas avoir à faire plusieurs fois les mêmes choses. D'où le fait d'essayer de transformer la valeur pendant la vérification, et de ne plus s'en préoccuper dans traiter().
Le but du découpage CVT c'est quand même de bien séparer les morceaux, et dans la majorité des cas, le but c'est d'arriver dans traiter() en étant sûr et certain que les valeurs récupérées sont correctes. On ne doit pas avoir à refaire des tests et des bidouilles pour ensuite commencer vraiment le traitement.
--
RastaPopoulos
Le 08/04/2010 09:08, RastaPopoulos a écrit :
Je rappelle que les vérifications peuvent avoir des options. Donc c'est
juste la vérification "entier" avec une option du genre "transformer la
valeur en entier si c'est possible". Rien de plus.
Donc on peut prévoir une option 'extraire_partie_entiere' ?
Joseph
Le 08/04/2010 16:42, Joseph a écrit :
Donc on peut prévoir une option 'extraire_partie_entiere' ?
Dans l'absolu oui, mais il faut d'abord modifier le comportement du plugin pour qu'il puisse renvoyer plus que juste un message d'erreur.
À priori il faudrait que chaque vérif renvoie un tableau associatif avec au minimum :
array(
'erreur' => 'un message d'erreur ou bien vide'
'valeur' => la valeur inchangée ou modifiée
)
--
RastaPopoulos