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 :

Vérification e-mail dans formulaire


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut Vérification e-mail dans formulaire
    Bonjour à tous,

    J'ai vu le code suivant dans les tutos, pour vérifier la validité des adresses emails dans les formulaires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    $regex = "/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i";
    $email = "nom@domaine.com";
    if (preg_match($regex, $email)) {
        echo "L'adresse $email est valide";
    } else {
        echo "L'adresse $email n'est pas valide";
    }
    ?>
    J'ai un formulaire que j'utilise actuellement et j'essaye sans résultat d'inclure la vérification de l'email. Pourriez-vous m'aider ?

    Merci d'avance.

    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
     
    <?php
    $nom = isset($_POST['nom'])?$_POST['nom']:'';
    $prenom = isset($_POST['prenom'])?$_POST['prenom']:'';
    $email = isset($_POST['email'])?$_POST['email']:'';
    $contenu = isset($_POST['contenu'])?$_POST['contenu']:'';
    $erreur1 = '<p class="alerte1">Veuillez indiquer votre nom'; 
    $erreur2 = '<p class="alerte2">Veuillez indiquer votre prénom';
    $erreur3 = '<p class="alerte3">Veuillez indiquer votre email';
    $erreur4 = '<p class="alerte4">Veuillez indiquer votre message';
     
    if(isset($_POST['action']) && !empty($nom)&&!empty($prenom)&&!empty($email)&&!empty($contenu))
    {
        $destinataire = 'test@test.com';
        $titre= "Demande de contact";
        $headers = 'From: '.$email.' <'.$email.'>'."\r\n";
        $message = "";
        $message .= "nom: ".$nom."\n";
        $message .= "prenom: ".$prenom."\n";
        $message .= "email: ".$email."\n";
        $message .= "contenu: ".$contenu."\n";
     
        if(mail($destinataire,$titre,$message,$headers))
          echo "<script>window.location='confirmation.php'</script>";
    }
    ?>

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    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
    <?php
    $regex = "/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i";
     
    $nom = isset($_POST['nom'])?$_POST['nom']:'';
    $prenom = isset($_POST['prenom'])?$_POST['prenom']:'';
    $email = isset($_POST['email'])?$_POST['email']:'';
    $contenu = isset($_POST['contenu'])?$_POST['contenu']:'';
    [...]
     
    if(isset($_POST['action']) && !empty($nom)&&!empty($prenom)&&!empty($email)&&!empty($contenu)) {
     if (preg_match($regex, $email)) {
        $destinataire = 'test@test.com';
        $titre= "Demande de contact";
        $headers = 'From: '.$email.' <'.$email.'>'."\r\n";
        $message = "";
        $message .= "nom: ".$nom."\n";
        $message .= "prenom: ".$prenom."\n";
        $message .= "email: ".$email."\n";
        $message .= "contenu: ".$contenu."\n";
     
         if(mail($destinataire,$titre,$message,$headers)) {
           echo "<script>window.location='confirmation.php'</script>";
         }
     }
     else {
      $erreur3='<p class="alerte3">Mail non conforme</p>';
     }
    }
     
    ?>
    Bonne soirée.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    Merci SpiritOfDoc

    Juste un petit problème: dès le chargement de ma page, j'ai le message "Mail non valide" qui s'affiche alors que tous les champs sont vides.

    Ensuite, et je ne sais pas si c'est possible serait de mettre le message "Veuillez indiquer votre email" si le champ est vide ou "Mail non valide" s'il est invalide".
    du type j'affiche $erreur3 si vide ou $erreur5 si l'email est invalide.

    Merci encore !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Voilà j'ai corrigé si dessus pour obtenir ce que tu voulais.

    Au lieu d'ajouter une énième variable, j'ai juste modifier le contenu de $erreur3.

    Bonne soirée.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    Thanks

    Bon le test de l'adresse email fonctionne impec

    J'ai juste un dernier problème: le message d'erreur "Mail non conforme" ne s'affiche pas s'il y a une erreur.

    Merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Tu as bien fais un echo du $erreur3 quelque part ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    En fait j'ai ça dans la ligne email de mon formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     <p>
        <label for="email">Votre e-mail *</label>
        <input class="textfield" type="text" name="email" id="email" value="<?php echo $email; ?>" title="Veuillez entrer votre e-mail" />
        <?php echo (isset($_POST['email'])&&empty($email))?$erreur3:''; ?>
      </p>
    J'ai bien un echo, peut être pas le bon ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Désolé j'suis pressé mais quelque chose comme ça devrait aller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(isset($erreur3)){
       echo $erreur3;
    }
    Bonne fin de soirée .

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 78
    Points : 20
    Points
    20
    Par défaut
    Rien à faire

    Bon au final, j'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $erreur5 = '<p class="alerte5">Veuillez indiquer un email valide';
    et modifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    else {
    $erreur3='<p class="alerte3">Mail non conforme</p>';
    }
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    else {
    $erreur5;
    }
    Comment faut-il ajouter $erreur5 ci-desous ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <p>
    <label for="email">Votre e-mail *</label>
    <input class="textfield" type="text" name="email" id="email" value="<?php echo $email; ?>" title="Veuillez entrer votre e-mail" />
    <?php echo (isset($_POST['email'])&&empty($email))?$erreur3:''; ?>
    </p>

    Revoila le code complet
    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
    61
    62
    63
    64
     
    <?php
    $regex = "/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i";
    $nom = isset($_POST['nom'])?$_POST['nom']:'';
    $prenom = isset($_POST['prenom'])?$_POST['prenom']:'';
    $email = isset($_POST['email'])?$_POST['email']:'';
    $contenu = isset($_POST['contenu'])?$_POST['contenu']:'';
    $erreur1 = '<p class="alerte1">Veuillez indiquer votre nom'; 
    $erreur2 = '<p class="alerte2">Veuillez indiquer votre prénom';
    $erreur3 = '<p class="alerte3">Veuillez indiquer votre email';
    $erreur4 = '<p class="alerte4">Veuillez indiquer votre message';
    $erreur5 = '<p class="alerte4">Veuillez indiquer un email valide';
     
    if(isset($_POST['action']) && !empty($nom)&&!empty($prenom)&&!empty($email)&&!empty($contenu)) {
     if (preg_match($regex, $email)) {
        $destinataire = 'nom@domaine.com';
        $titre= "Demande de contact";
        $headers = 'From: '.$email.' <'.$email.'>'."\r\n";
        $message = "";
        $message .= "nom: ".$nom."\n";
        $message .= "prenom: ".$prenom."\n";
        $message .= "email: ".$email."\n";
        $message .= "contenu: ".$contenu."\n";
     
         if(mail($destinataire,$titre,$message,$headers)) {
           echo "<script>window.location='confirmation.php'</script>";
         }
     }
     else {
      $erreur5;
     }
    }
     
    ?>
     
     
    <form method="post" action="index.php">
      <p class="titre">Vos coordonnées</p>
      <p>
        <label for="nom">Votre nom *</label>
        <input class="textfield" type="text" name="nom" id="nom" value="<?php echo $nom; ?>" title="Veuillez entrer votre nom" />
        <?php echo (isset($_POST['nom']) && empty($nom))?$erreur1:''; ?>
      </p>
      <p>
        <label for="prenom">Votre prénom *</label>
        <input class="textfield" type="text" name="prenom" id="prenom" value="<?php echo $prenom; ?>" title="Veuillez entrer votre prénom" />
        <?php echo (isset($_POST['prenom'])&&empty($prenom))?$erreur2:''; ?>
      </p>
      <p>
        <label for="email">Votre e-mail *</label>
        <input class="textfield" type="text" name="email" id="email" value="<?php echo $email; ?>" title="Veuillez entrer votre e-mail" />
        <?php echo (isset($_POST['email'])&&empty($email))?$erreur3:''; ?>
      </p>
      <p class="titre">Votre message</p>
      <p>
        <label for="message">A vous la parole *</label>
        <textarea name="contenu" cols="41" rows="4" id="contenu" title="Veuillez entrez ici votre message"><?php echo $contenu; ?></textarea>
        <?php echo (isset($_POST['contenu'])&&empty($contenu))?$erreur4:''; ?>
      </p>
      <p id="envoyer">
        <input type="image" alt="Envoyer" src="images/submit.gif" />
        <input type="hidden" name="action" value="envoyer" />
      </p>
    </form>
    Merci d'avance

Discussions similaires

  1. Vérification de champs dans formulaire
    Par jquery dans le forum jQuery
    Réponses: 3
    Dernier message: 18/12/2013, 23h59
  2. Vérification format adresse mail dans formulaire
    Par tomtom59110 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/08/2013, 09h31
  3. Vérification données saisie dans formulaire
    Par smotte761 dans le forum Langage
    Réponses: 8
    Dernier message: 02/05/2011, 18h56
  4. vérification d'une adresse mail dans un formulaire via une regexp
    Par mattstriker dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/04/2008, 19h12
  5. Insertion d'adresse mail dans formulaire MS Access
    Par Gabe74 dans le forum Access
    Réponses: 1
    Dernier message: 06/09/2006, 13h49

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