Page 1 sur 1

Prise En Compte De Décimales Avec "preg_match"

Posté : 08 sept. 2007, 15:27
par L-CoKo
Bonjour à tous

Je démarre en PHP depuis moins de 48H et je viens déja vous ennuyer...

J'ai fait ceci en PHP qui est hebergé ICI pour test (iFrance)

Mon but n'était pas tant de savoir quel volume fait le cône mais de générer un message bien spécifique en cas d'une anomalie dans la saisie.

Il y a donc plusieurs messages d'erreur selon les circonstances :

1) si un champ vide
2) si deux champs vides
3) si lettre dans un champs

etc...

Tout marche comme je veux, sauf que je ne peux rentrer que des entiers pour avoir mon résultat.

Voici un bout de code pour comprendre ou je veux en venir :
$chiffre = '`[0-9]`';
$lettre = '`[^0-9]`';

if (preg_match($lettre,$_POST['hauteur']))
{
$erreur = "4";
}

elseif (preg_match($chiffre,$_POST['hauteur'] AND $_POST['rayon']==NULL))
{
$erreur = "3";
}
Donc quand je rentre la décimale 1.3 par exemple c'est reconnu comme une "lettre" puisque c'est différent de 0 à 9

J'aimerais donc savoir quelles sont les bonnes valeurs pour mes deux variables ($chiffre, et $lettre) afin que je puisse rentrer à la fois des entiers et des décimales mais que tout le reste soit exclus.

Je vous remercie

@+

Posté : 08 sept. 2007, 15:40
par Ryle
Quand tu définies la classe [0-9] cela veut dire que tu autorises tous les caractères compris entre 0 et 9 inclus. Tu peux très bien modifier cette classe pour autoriser d'autres caractères. Par exemple : [0-9a-z+=] autorises les chiffres de 0 à 9, les lettres minuscules de a à z, le caractère '+' et le caractère '=' :)

Mais pour savoir si une valeur est numérique ou non, il y a plus simple que des expressions régulières, regarde du côté de is_numeric() par exemple (et des fonctions liées :))

Posté : 08 sept. 2007, 16:29
par L-CoKo
Merci beaucoup

En fait je ne me suis pas servi de is_numeric mais j'ai trouvé sur la page un truc dans ce genre => [0-9.,-] qui permet de tolèrer les décimales

J'ai adapté à ma page et c'est bon.

Merci encore

@+

Posté : 08 sept. 2007, 16:33
par Ryle
Modération :
L-CoKo, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

Posté : 08 sept. 2007, 16:43
par Sékiltoyai
Merci beaucoup

En fait je ne me suis pas servi de is_numeric mais j'ai trouvé sur la page un truc dans ce genre => [0-9.,-] qui permet de tolèrer les décimales

J'ai adapté à ma page et c'est bon.

Merci encore

@+
Je peux rentrer un beau 12.667,827,287.76 l'expression passera parfaitement avec ta méthode. Et la fonction is_numeric() aura en plus de l'avantage de gérer ce problème, l'avantage aussi d'être plus rapide car optimisée pour cette recherche précise…