IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Validation de numéro de téléphone


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut [PHP-JS] Validation de numéro de téléphone
    Re-bonjour, j'ai tjs mon formulaire et j'aimerais vérifier le numéro de téléphone que saisi l'utilisateur. Je me suis penché vers la fonction is_numeric mais il me semble que ca ne convient pas !

    Je sais que le numéro peut être écrit avec des espace, des points, des slashs ou des tirets ! ex: 123.123.123 ou 123 123 123 ou 123/123/123/ ou 123-123-123 !

    Alors comment ne pas autoriser de lettres (ex : a b c ) ???

    merci !
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  2. #2
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    La solution à ton problème serait soit de forcer les gens à saisir ton numéro de téléphone tout en chiffres (limiter la taille de l'input à 10 par exemple) et de vérifier ensuite en javascript si tu as bien un nombre (avec isNaN).

    Ou alors tu peux utiliser les expressions régulières en Php afin de déterminer si ton numéro est correct.
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  3. #3
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Soit tu parses à la main ta chaine pour vérifier si les caractères sont ceux que tu attends du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    $num_tel = "123-123-123";
    $i = 0;
    $is_valid = true;
    while ($num_tel[$i] && $is_valid) {
      echo ($num_tel[$i]);
      if ($i % 4 == 3 && $i != 0) {
        if ($num_tel[$i] != '-' && $num_tel[$i] != '/' && $num_tel[$i] != '.' && $num_tel[$i] != ' ')
          $is_valid = false;
      }
      else if (!is_numeric($num_tel[$i])) $is_valid = false;
      $i++;
    }
     
    if ($is_valid)
    	echo ("Le numero de telephone est ok.");
    else
    	echo ("Vous devez utiliser un format valide.");
    Soit, si tu veux être un peu plus élégant, tu peux utiliser les expressions régulière.

    --
    Rakken
    Rakken

    Oneira, un monde imaginaire d'Heroic Fantasy.

    Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/

  4. #4
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    Merci ! J'ai testé ton code et je l'ai adapté pour mes besoins ! Merci ! Il est fonctionnel alors je vais l'exploiter!

    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  5. #5
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    J'ai répéré un problème dans le code ! Si l'on met une lettre au début du numéro il dit que le num est invalide ! Donc c'est OK ! Mais si on met au début des chiffres et ensuite des lettres, le programme dit que le num est valide donc ca ne fonctionne pas vraiment... Il suffit de mettre un chiffre et ensuite on peut insérer des lettres pour contourner la sécurité.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    $num_tel = "$no_de_telephone";
    $i = 0;
    $is_valid = true;
    while ($num_tel[$i] && $is_valid)
    {
    if ($i % 4 == 3 && $i != 0)
    {
    if ($num_tel[$i] != '-' && $num_tel[$i] != '/' && $num_tel[$i] != '.' && 		$num_tel[$i] != ' ' && $num_tel[$i] != ',')
    $is_valid = false;
    }else if (!is_numeric($num_tel[$i])) $is_valid = false;
    $i++;
    }
     
    if ($is_valid)
    {
    echo ("valide");
    }
    else
    {
    echo ("invalide");
    };
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Puisque la possibilité de faire ce test avec une expression régulière a été évoquée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (preg_match('#^[0-9]{3}([ -/])[0-9]{3}\1[0-9]{3}$#', $num_tel)) {
        echo 'Valide !';
    } else {
        echo 'Invalide !';
    }

    Julp.

  7. #7
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    merci mais j'ai pas réussi à l'implémenter...
    Les cours: XHTML, CSS, PHP, Flash et Javascript
    Expliquez votre problème clairement et pensez à remercier ceux qui vous ont aidé.
    N'oubliez pas : Le tag résolu est la meilleure des satisfactions sur developpez.com
    Aucune question technique par MP.

  8. #8
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Euh... J'arrive pas a faire planter le truc.

    T'as un exemple de chaine qui foire ?

    --
    Rakken
    Rakken

    Oneira, un monde imaginaire d'Heroic Fantasy.

    Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ZF 1.11] Validation numéro de téléphone
    Par CinePhil dans le forum Zend_Form
    Réponses: 8
    Dernier message: 06/11/2012, 14h24
  2. [RegEx] validation d'un numéro de téléphone par regex
    Par laurentSc dans le forum Langage
    Réponses: 5
    Dernier message: 20/12/2010, 22h22
  3. validation numéro de téléphone
    Par foxbille dans le forum Cobol
    Réponses: 2
    Dernier message: 22/07/2008, 13h40
  4. [MySQL] recherche par numéro de téléphone en PHP
    Par stomerfull dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 02/02/2007, 12h45
  5. [PHP-JS] Préformatage numéro de téléphone
    Par ChrisColumbus dans le forum Langage
    Réponses: 4
    Dernier message: 21/11/2006, 13h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo