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 :

format email et tel obligatoire dans un formulaire


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2009
    Messages : 40
    Par défaut format email et tel obligatoire dans un formulaire
    Bonjour à tous,
    Je viens de faire un petit formulaire, et dedans, j'ai 2 champs, 1 nommé E-mail, et 1 nommé SMS, je vous montre mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <p>Je souhaite être tenu informé par:</p>
        <p>
              <label>E-mail : </label>
          <input type="text" name="email" size="30" /><br />
          ou par:<br />
                <label>SMS : </label>
          <input type="text" name="sms" size="30" />
        </p>
    Comment puis je faire pour quand les personnes, soient obligée de rentrer les informations sous forme de XXX@XXX.XX et XX.XX.XX.XX.XX ?
    D'avance merci pour vos réponses.

  2. #2
    Membre émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    tu peux utiliser javascript pour controler les entrées du user, et lui notifier qu il a mal entrer les données .
    Tu peux aussi par exemple ajouter un "." tout les deux caracteres ....

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2009
    Messages : 40
    Par défaut
    Mon soucis, c'est que je début, je me suis mis à PHP, il y a une semaine!!! Donc, je ne connais pas grand chose à la programmation...

  4. #4
    Membre confirmé Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Par défaut
    Tout d'abord, tu dois créer un formulaire, si tu veux traiter les informations saisies.

    Ensuite, tu peux ajouter dans ta page de formulaire du javascript :
    Copie cette partie du script entre <head> et </head> ou dans un fichier externe :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    <script type="text/javascript"> 
     
    function verifierMail (champ) { 
    var str = champ.value; 
    var regexp = new RegExp("^[a-zA-Z0-9_\\-\\.]{3,}@[a-zA-Z0-9\\-_]{2,}\\.[a-zA-Z]{2,4}$", "g"); 
    if (!regexp.test(str)) { 
       alert("L'adresse e-mail n'est pas valide !"); champ.focus(); 
       return false; 
    } 
    return true; 
    } 
     function Verifier_Numero_Telephone(champ)
     {
      num_tel = champ.value; 
     
     // Definition du motif a matcher
     var regex = new RegExp(/^(01|02|03|04|05|06|08)[0-9]{8}/gi);
     
     // Test sur le motif
     if(regex.test(num_tel))
     {
         return true;
     }
     else
     {
         alert("Le numéro n'est pas valide !"); champ.focus(); 
         return false;
     }
     
     } 
     </script>
    Copie cette partie du script à la place de ton 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
    <form
    onsubmit="return verifierMail(this.elements['email']); return Verifier_Numero_Telephone(this.elements['sms'])" action='script.php'  method='post' name="formulaire">
    <p>Je souhaite être tenu informé par:</p>
    <p>
    <label>E-mail : </label>
    <input type="text" name="email" size="30" /><br />
    ou par:<br />
    <label>SMS : </label>
    <input type="text" name="sms" size="30" />
    </p>
    <input type="submit" value="Valider
    !" />
    </form>
    A la validation du formulaire, le javascript va être lancé grâce à l'évenement onSubmit.
    Action sert à envoyer les informations de ton formulaire vers un script php, ici, il se situe dans le même répertoire que ta page où il y a le formulaire.
    method sert à définir comment tu récupères les informations à traiter :
    - La méthode POST est utilisée pour transmettre des données via un formulaire et passer en "caché" (utiliser la variable $_POST['email'] pour récupérer la valeur du mail et $_POST['sms'] pour récupérer la valeur du sms)
    - La méthode GET passe les variables (les infos du formulaire) via l'url. (utiliser la variable $_GET['email'] pour récupérer la valeur du mail et $_GET['sms'] pour récupérer la valeur du sms)

    cette solution n'est valable dans le cas où le javascript est activé. Dans le cas, contraire il faut prévoir une vérification dans ton script php traitant les informations du formulaire.

    dans ton script.php :
    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
    if(isset($_POST['formulaire']))
    {
        $mail = $_POST['email']
        if(eregi("^([a-zA-Z0-9]+)@([a-zA-Z0-9]+).{2,4}$",$mail))
       {
         echo  "ok<br>";
       }
     else
     {
       if(eregi("^([a-zA-Z0-9]+)([_\.-]+)([a-zA-Z0-9]+){1,}@([a-zA-Z0-9]+).([a-zA-Z]+){2,4}$",$mail))
      {
       echo "ok<br>";
      }
    else
      echo "erreur<br>";
     }
    }
    je n'ai pas mis la vérification du numéro de téléphone, à toi de le faire.

    donc pour te documenter et comprendre un peu mieux tout ça :
    les formulaires :
    http://php.developpez.com/cours/?pag...ge#formulaires
    les expressions régulières (qui te permettent de vérifier tes champs) en PHP
    http://php.developpez.com/cours/?page=langage#regexp
    http://atranchant.developpez.com/code/validation/

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2009
    Messages : 40
    Par défaut
    Ouhaou!!!
    Quelle réponse! Elle est complète, Merci. Bon, comme cela fait beaucoup de choses pour moi d'un seul coup, et bien je vais analyser tout cela et je vais me mettre o boulot!!! Et au cas ou, j'appellerai à l'aide.
    Merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2009
    Messages : 40
    Par défaut
    Bon, j'ai mis en place tout ce petit monde, cela fonctionne! SAUF une erreur...
    Beurk, je cherche, mais je trouve pas...
    Parse error: syntax error, unexpected T_IF in /web/sites/vhbu3/0/125/100304/public/www/test/traitement.php on line 65

    Voici la ligne 65:
    // on verifie les E-mail et sms
    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
    {
        $mail = $_POST['email']
        if(eregi("([a-zA-Z0-9]+)@([a-zA-Z0-9]+).{2,4}$",$mail))
       {
         echo  "ok<br>";
       }
     else
     {
       if(eregi("([a-zA-Z0-9]+)([_\.-]+)([a-zA-Z0-9]+){1,}@([a-zA-Z0-9]+).([a-zA-Z]+){2,4}$",$mail))
      {
       echo "ok<br>";
      }
    else
      echo "erreur<br>";
     }
    }
    C'est celle qui soulignée.
    Puis je avoir de l'aide!!!
    Merci

  7. #7
    Membre confirmé Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Par défaut
    t'as oublié un ; au dessus
    par contre utilise "[ code ][ /code ]" sans les espaces ou clique sur # pour insérer du code, c'est plus joli

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2009
    Messages : 40
    Par défaut
    Bon, j'ai approfondi mes recherches et je suis tombé sur un script avec java, qui fonctionne bien et me donne toutes satisfactions!!!

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
        <script language="javascript">
        <!--
        function verif(mail,pseudo,prenom,nom,age){
        if(vmail(mail)||vtexte(pseudo,'pseudo')||vtexte(prenom,'prenom')||vtexte(nom,'nom')||vnombre(age)){
        return true;
        }else{
        return false;
        }
        }
        function vtexte(texte,type){
        if(texte.value.length<3){
        alert('Veuillez entrer un '+type+' valide');
        return false;
        }else{
        return true;
        }
        }
        //test la validité d'une adresse e-mail
        function vmail(mail){
        // l'adresse minimum est xx@yy.zz
        var point=mail.value.lastIndexOf('.');
        // La position du dernier point de l'adresse email
        var arob=mail.value.lastIndexOf('@');
        // La position du dernier @ de l'adresse email
        var longu=mail.value.length;
        // La longueur de l'adresse
        if((longu-point < 3) || (longu-arob) < 6 || arob > point || point == -1 || arob == -1){
        // Si le point se trouve a moins de 2 caractères de la fin
        // ou si l'arobase se trouve a moins de 5 caractères de la fin
        // ou si il n'y a pas de point après @
        // ou si il n'y a pas de point ou pas de @
        alert('Veuillez entrer une adresse email valide');
        return false;
        }else{
        return true;
        }
        }
        function vnombre(champ){
        if(isNaN(champ.value)||champ.value<5||champ.value>99){
        // si ce n'est pas un nombre ou qu'il est inférieur a 5 ou superieur a 99
        alert('Veuillez entrer un age valide');
        return false;
        }else{
        return true;
        }
        }
        //-->
        </script>
        </head>
        <body>
        <form name="verifier" method="post" enctype="text/plain" action="mailto:xxx@yyy.zzz" onSubmit="return verif(document.verifier.email,document.verifier.pseudo,document.verifier.prenom,document.verifier.nom,document.verifier.age)">
        <p>Votre adresse email : <input type="text" name="email" onBlur="vmail(this)">
        </p>
        <p>Votre pseudo : <input type="text" name="pseudo" onBlur="vtexte(this,'pseudo')"><br>
        Votre prénom : <input type="text" name="prenom" onBlur="vtexte(this,'prénom')"><br>
        Votre nom : <input type="text" name="nom" onBlur="vtexte(this,'nom')"></p>
        <p>Votre age : <input type="text" name="age" onBlur="vnombre(this)"></p>
        <p><input type="submit" value="valider"> <input type="reset" value="RaZ"></p>
        </form>
        </body>
    En attendant, je vous dis un GRAND merci pour votre aide, et je constate que j'ai encore bcp de boulot!!!!

    PS: je ne peux pas mettre le formulaire en ligne pour le moment, mais dès que je peux, j'envoie cela.

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

Discussions similaires

  1. Positionnement d'un champs obligatoires dans un formulaire de contact
    Par sofiane06 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 10/08/2010, 13h13
  2. rendre une saisie obligatoire dans un formulaire
    Par heteroclite dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 18/09/2006, 00h26
  3. Champs obligatoires dans un formulaire
    Par sagitarium dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 23/05/2006, 17h55
  4. Format d'un nombre reel dans un formulaire
    Par Patrick57 dans le forum Access
    Réponses: 1
    Dernier message: 17/05/2006, 22h36
  5. Champs obligatoires dans un formulaire
    Par glloq8 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/09/2005, 17h24

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