Php formulaire

frio -  
 frio -
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
Configuration: Windows XP
Firefox 2.0.0.4

3 réponses

  1. Stringman621 Messages postés 1726 Date d'inscription   Statut Membre Dernière intervention   340
     
    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
  2. frio
     
    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
  3. Stringman621 Messages postés 1726 Date d'inscription   Statut Membre Dernière intervention   340
     
    Essai avec ca :
    "^[:digit:]+$"


    Ce qui correspond à un nombre
    0
    1. frio
       
      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