Page 1 sur 2
Vérifier si un nombre posté via un formulaire est un entier
Posté : 05 nov. 2012, 19:39
par rickphp
Bonjour,
Comment vérifier si un nombre posté via un formulaire est un entier (par un nombre a ,)?
J'essai comme ceci :
if(is_numeric($_POST['quantite'])
Je vérifie s'il s'agit bien d'un nombre, mais je peu faire 1,5. Ce que je ne veux pas...
Quelqu'un a une idée?
Merci
Re: Vérifier si un nombre posté via un formulaire est un ent
Posté : 05 nov. 2012, 19:41
par xTG
is_int()

Re: Vérifier si un nombre posté via un formulaire est un ent
Posté : 05 nov. 2012, 19:49
par rickphp
D'accord je vais essayer cela

Re: Vérifier si un nombre posté via un formulaire est un ent
Posté : 05 nov. 2012, 20:51
par schim59
Bonjour,
ou if(gettype()==int){...;}
C'est plus long donc je vois pas l'intérêt :=)
Re: Vérifier si un nombre posté via un formulaire est un ent
Posté : 05 nov. 2012, 21:09
par xTG
Non ça par contre ça ne fonctionnera pas.
Car tout ce qui est transmis par GET ou POST est de type String.

Re: Vérifier si un nombre posté via un formulaire est un ent
Posté : 05 nov. 2012, 23:52
par AB
Non ça par contre ça ne fonctionnera pas.
Car tout ce qui est transmis par GET ou POST est de type String.

Ben oui mais j'ai bien peur que pour les mêmes raisons is_int() ne soit pas adapté pour tester une entrée de formulaire

Re: Vérifier si un nombre posté via un formulaire est un ent
Posté : 06 nov. 2012, 00:06
par AB
Je vérifie s'il s'agit bien d'un nombre, mais je peu faire 1,5. Ce que je ne veux pas...
Deux solutions.
Soit tu veux au final avoir un entier et tu peux faire :
$nb = is_numeric($_GET['toto']) ? intval($_GET['toto']) : 'valeur par défaut';
Soit tu veux tester que la valeur rentrée est bien un entier et tu peux faire :
$nb = is_numeric($_GET['toto']) && intval($_GET['toto']) == $_GET['toto'] ? $_GET['toto'] : 'pas bon';
Re: Vérifier si un nombre posté via un formulaire est un ent
Posté : 06 nov. 2012, 00:06
par sam12
regex? [0-9]?
Re: Vérifier si un nombre posté via un formulaire est un ent
Posté : 06 nov. 2012, 00:08
par AB
regex? [0-9]?
Oui sans soute ça pourrait le faire, mais à moins d'avoir des besoins particuliers il vaut mieux éviter d'utiliser un regex pour si peu

Re: Vérifier si un nombre posté via un formulaire est un ent
Posté : 06 nov. 2012, 00:25
par sam12
En effet, je proposais juste une solution alternative

Re: Vérifier si un nombre posté via un formulaire est un ent
Posté : 06 nov. 2012, 00:45
par cezame
hello,
A ta place j'utiliserais la fonction ctype_digit() pour vérifier si ta chaine contient seulement des chiffres compris entre 0 et 9, surtout dans ton cas ou on parle de quantité donc forcement nulle ou positive.
Re: Vérifier si un nombre posté via un formulaire est un ent
Posté : 06 nov. 2012, 01:11
par AB
hello,
A ta place j'utiliserais la fonction ctype_digit() pour vérifier si ta chaine contient seulement des chiffres compris entre 0 et 9, surtout dans ton cas ou on parle de quantité donc forcement nulle ou positive.
tiens oui, je l'avais complètement oubliée cette fonction

faut dire aussi que j'utilise toujours la première méthode dans mes exemples cité plus haut, donc je vérifie pas, je caste.
Re: Vérifier si un nombre posté via un formulaire est un ent
Posté : 06 nov. 2012, 11:10
par schim59
input type="number" ?
Re: Vérifier si un nombre posté via un formulaire est un ent
Posté : 06 nov. 2012, 11:16
par dix2
input type="number" ?
c'est du HTML5
vérification côté utilisateur donc pas fiable
mais une bonne solution alternative au JS pour améliorer l'ergonomie
Re: Vérifier si un nombre posté via un formulaire est un ent
Posté : 06 nov. 2012, 11:16
par xTG
Non ça par contre ça ne fonctionnera pas.
Car tout ce qui est transmis par GET ou POST est de type String.

Ben oui mais j'ai bien peur que pour les mêmes raisons is_int() ne soit pas adapté pour tester une entrée de formulaire

Blackout dans ma tête. u_u