Formulaire validation du numéro de téléphone

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire validation du numéro de téléphone

par Cyrano » 14 déc. 2006, 09:45

Un détail : le "-" ne fait pas partie de ce que l'on compose sur un clavier et ne sert que pour la mise en forme destinée à l'affichage. Donc pour valider, je te suggère de créer une variable temporaire ne comportant que les caractères numériques en faisant sauter le "-".

Donc tu pourrais commencer par reformater le numéro envoyé pour la validation. Par exemple :
$numtmp = preg_replace("#[^\d]*#", "", $telephone);
$phone = "#^\d{6,10}$#";
/* On valide $numtmp et non $telephone */
if (($telephone) && !(preg_match($phone,$numtmp)))
{
            print "<p>Le num&eacute;ro de t&eacute;l&eacute;phone doit comporter seulement des chiffres, de 6 &agrave; 10 chiffres sans espaces ni tirets</p>\n";
}
Autre possibilité : dans ton formulaire, tu pourrais prévoir une liste déroulante des indicatifs régionaux ià coté de la zone de saisie du numéro lui-même, par exemple une liste avec 418, 514, 450, etc... Et éventuellement tu pourrais ajouter un petit JavaScript interdisant la saisie d'autre chose que de numéros à l'aide d'un évènement onkeyup.

Formulaire validation du numéro de téléphone

par stefane321 » 14 déc. 2006, 05:16

Dans le tutoriel:

http://www.phpfrance.com/forums/voir_sujet-12858.php

La validation du numéro de téléphone ne marche pas pour les numéro canadien.

Dans nos numéro nous avons des - ( )

Ex.: (418) 671-2092

Pouvez-vous m'indiquer la modification nécessaire ?

Merci, voici le code:
$phone = "#^\d{6,10}$#";

        if (($telephone) && !(preg_match($phone,$telephone)))
        {
            print "<p>Le num&eacute;ro de t&eacute;l&eacute;phone doit comporter seulement des chiffres, de 6 &agrave; 10 chiffres sans espaces ni tirets</p>\n";
        }