J' ai un formulaire dans lequel l' utilisateur entre un nombre qui doit être entier avec input type="text" name="nbre"
Le script qui récupère les données du formulaire est:
// lireFormu.php
if ( is_numeric($POST_['nbre'] ) ) {
echo "Ok";
} else {
echo "Erreur";
}
Si l' utilisateur entre un nombre réel 1.5 , j'obtiens le message Ok
Merci
# is_int peut etre??
Posté par Cheneson Cyril . Évalué à 1.
bool is_numeric ( mixed var )
Finds whether the given variable is numeric. Numeric strings consist of optional sign, any number of digits, optional decimal part and optional exponential part. Thus +0123.45e6 is a valid numeric value. Hexadecimal notation (0xFF) is allowed too but only without sign, decimal and exponential part.
Peut etre que tu devrais utliser is_int()/is_integer()
A++
Cyril
# De rien
Posté par Infernal Quack (site web personnel) . Évalué à 2.
Sinon voilà la réponse http://fr2.php.net/manual/fr/function.is-int.php
L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire
# un conseil au passage.
Posté par fabien . Évalué à 2.
ex :
$nbre=strip_tags($_POST['nbre']);
// a partir de là on utilise $nbre et non plus $_POST['nbre']
faire une petite fonction qui fait celà est pas mal non plus, comme ca tu pourra traiter (par exemple) le SQLinjection a un seul endroit...
voilà.
[^] # Re: un conseil au passage.
Posté par parsy . Évalué à 1.
[^] # Re: un conseil au passage.
Posté par fabien . Évalué à 2.
pour savoir si c'est un entier, c'est que sa partie decimale est nulle.
je ne connais pas la fonction en php qui donne la partie decimale.
mais par soustraction avec la partie entiere tu peux le faire, voir même encore plus simplement, par comparaison. voici une fonction pour celà : ceil
exemple.
if(is_numeric($a) && $a==ceil($a)) { echo "$a est un entier, non?"; }
j'ai même pas testé, c'est juste une idée...
et au fait, tu a essayé u truc du genre :
if(is_numeric($a) && is_int(0+$a)) { echo "$a est un entier, non?"; }
j'ai "convertie" la chaine en nombre en additionnant 0...
enfin des astuces je suis sur qu'on peu en trouver plein plein plein...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.