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 :wink:

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