Php formulaire

Fermé
frio - 14 juin 2007 à 11:04
 frio - 15 juin 2007 à 11:46
bjr à tous
je suis sur un travail en php.
alors ca a lair tout bete mais quel est le code qu'il faut mettre pour verifier si les champs que je recupere d'un formulaire sont en format numerique???
Merci de me repondre

3 réponses

Stringman621 Messages postés 1305 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 338
14 juin 2007 à 12:28
Salut a toi voila la soluce si j'ai bien compris :

if(!(empty($_GET['id'])))
{
  $id = htmlentities($_GET['id'],ENT_QUOTES);
  $id =(int)$id;

  if($id == 0)
     echo ''cetta variable est un entier";
  else
     echo "cette variable n'est pas un entier
}


Sachant que si c'est une variable qui provient d'un formulaire, elle est toujours considérée comme chaine de caractere.

C'est pourquoi je fais un cast ($id=(int)$id),
Et si la variable est un entier après le "cast" $i prend la valeur de la variable envoyée au formulaire,
Sinon la variable prend al valeur zero,

Reste a verifier si la valeur recupérée est différente de zéro, je te laisse ce petit test ;)

Tchô !

EDIT :
Sinon tu peux aussi voir du coté des expressions regulières [:digit:] qui correspond au numérique
0
Merci bocou pour ta reponse

Mais je mdemandais si jpouvais utiliser
preg_match('[0-9]',$p)

parce que c'est pas vraiment des entiers c'est plutot de n° de carte d'identité que je saisie.
donc je voudrais aussi verifier qu'il y ait 8 chiffre.
Le problème c'est que ca nfonctionne pas comme je l'ai ecrite la preg_match
0
Stringman621 Messages postés 1305 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 338
15 juin 2007 à 11:41
Essai avec ca :
"^[:digit:]+$"


Ce qui correspond à un nombre
0
Merci bocou à ts
finalment c'est bon ca marche en faisant
preg_match('/[0-9]{8}/',$cin))
ensuite j'ajoute un
(strlen($cin)==8))
pour m'assurer que ca contienne bien 8 chiffre
J'ai pas l'impression que ce soit tres optimal comme option mais bon ca fait laffaire
0