Page 1 sur 1
vérifier un champ qui contient que des chiffres
Posté : 14 août 2006, 15:56
par laplumaencre
Salut!!
Je voudrais vérifier qu'un champ qui contient que des chiffres float ou int, mais que des chiffres...j'ai fais ça mais ça n'a pas l'air de fonctionné...
//Vérification du prix entier ou réel mais que des chiffres
if ($_POST["prix_revient"]!="") {
if (is_float($_POST["prix_revient"]) or is_integer($_POST["prix_revient"])) {
$prix_revient=$_POST["prix_revient"];
} else {
echo "Veuillez saisir un prix qui contient que des chiffres (entiers ou réels) !<br>";
}
}
Posté : 14 août 2006, 16:17
par Ripat
Et avec is_numeric() ?
Posté : 14 août 2006, 16:19
par laplumaencre
j'ai essayé mais les chiffres a virgule sont exclus ...
Posté : 14 août 2006, 16:28
par zeus
Je vais en revenir au fonctionnement de base d'un forum technique :
"Ca n'a pas l'air de fonctionner" ne veut rien dire !!!
Pour fournir une aide optimale, il faut que tu nous dises ce que tu voudrais que ton code fasse et ce qui te fait dire que ça ne fonctionne pas
Posté : 14 août 2006, 16:35
par Ripat
j'ai essayé mais les chiffres a virgule sont exclus ...
Remplace tes virgules par des points avant de les soumettre à is_numeric()
Posté : 14 août 2006, 16:35
par laplumaencre
Merci modérateur !
Je veux ts simplement vérifier si le champ prix, est bien remplit soit avec des chiffre int ou float mais pas des lettres ou autre caracteres...
j'ai réssayé is_numeric, et je pense que ça va convenir a mes besoins, puisque si il fonctionne aussi avec les chiffres a virgule (enfin avec un point)
Posté : 14 août 2006, 16:40
par laplumaencre
En fait ce qui serait bien c'est une fonction qui accepte que des chiffres ! et avec une virgule ou un point comme séparateur...
Posté : 14 août 2006, 21:16
par rami
Issu du
framework Zend, plus précisement de la classe Zend_Filter.
/**
* Returns value if it is a valid float value, FALSE otherwise.
*
* @param mixed $value
* @return mixed
*/
public static function isFloat($value)
{
$locale = localeconv();
$value = str_replace($locale['decimal_point'], '.', $value);
$value = str_replace($locale['thousands_sep'], '', $value);
return (strval(floatval($value)) == $value);
}
Posté : 16 août 2006, 08:40
par laplumaencre
merci Rami, je vais voir ça .