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 :

Verifier si le champs mail a bien été complété par une adresse mail


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 51
    Points : 46
    Points
    46
    Par défaut Verifier si le champs mail a bien été complété par une adresse mail
    Bonjour à toutes et à tous, dans mon formulaire HTML, l'autre jour j'ai augmenté un peu la sécurité en vérifiant si le champs EMAIL était bel et bien complété grace à mon mail.php mais la, j'ai un nouveau petit problème : je souhaiterai savoir comment faire pour vérifier qu'il s'agit bien d'une adresse EMAIL...

    Ma question : quel code insérer dans mon mail.php et à quel endroit ?

    D'avance merci.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 51
    Points : 46
    Points
    46
    Par défaut
    Pour vous éclairer, 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php 
     
    if(($_POST['email'] != "")){ // Le champs email est ici obligatoire
     
    $destinataire='newsletter@domaine.com'; //adresse mail de la personne qui recevra les messages
     
    {
     
    //je récupère les données du formulaires et les enregistre dans des variables
    $pseudo=addslashes($_POST['pseudo']);
    $email=addslashes($_POST['email']);
    $commentaires=addslashes($_POST['commentaires']);
     
    }
     
    	  $emailmess= $email; //email de l expéditeur 
    	  //création du message en html 
    			 	$messagemail='vous avez un nouveau message <br/><br/>Détails du message :<br/><br/> <u><b>pseudo</b></u>: '.$pseudo.'<br/><br/><u><b>email</b></u>: &nbsp;'.$email.'<br/><br/> <u><b>commentaires</u></b>:&nbsp;'.$commentaires;
                    $objetmail='nouveau message de'.$pseudo;
                 	$headers='From:'.$emailmess."\r\n".'To:'.$destinataire."\r\n".'Subject:'.$objetmail."\r\n".'Content-type: text/html; charset= iso-8859-1'."\r\n".'Sent:'.date('l, F d, Y H:i');
    				$headers .= 'MIME-version: 1.0\n';
    				$headers .= "X-Sender: <www.newsletter@rottenfate.com>\r\n"; 
                    $headers .= "X-Mailer: PHP\r\n"; 
                    $headers .= "X-auth-smtp-user: contact@domaine.com \r\n"; 
                    $headers .= "X-abuse-contact: abuse@domaine.com";
    //				$headers .= "Reply-to: $from\r\n";
                 if (mail($destinataire, $objetmail, $messagemail, $headers) )
                 {
                    echo '<p class="contenu">Votre message a bien été envoy&eacute;. Merci.</p><p class="contenu"><a href="accueil.php">Retour &agrave; la page d\'accueil.</a></p><p>&nbsp;</p>'; //Remerciements en français si le formulaire a bien été complété
                    echo '<p class="contenu">Your message was correctly send. Thanks.</p><p class="contenu"><a href="home.php">Back to the Main Page.</a></p>'; //Remerciements en anglais si le formulaire a bien été complété
     
    				$Envoi='submit';
                   }
    } else {
        echo '<p class="contenu">Il vous faut fournir au moins une adresse email.</p><p class="contenu"><a href="inscription.php">Retour &agrave; la page Contact.</a></p><p>&nbsp;</p>'; //Si le champs email est incomplet, retour au formulaire à la page française
        echo '<p class="contenu">You should provide at least an email address.</p><p class="contenu"><a href="subscribe.php">Back to the Contact Page.</a></p>'; //Si le champs email est incomplet, retour au formulaire à la page anglaise
    }
     
    ?>

  3. #3
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    Tu peux probablement t'inspirer de ce tutoriel :
    http://atranchant.developpez.com/code/validation/

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 51
    Points : 46
    Points
    46
    Par défaut
    J'ai fait tout ce qu'il y avait dans ce tuto, ma foie génial, seulement il se passe un truc bizarre : même si la personne met une adresse mail non valide,
    je reçois quand même le formulaire, avec bien sur la drole d'adresse.

    Auriez-vous une explication?

  5. #5
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Montres-nous ton code, et on trouveras peut-être une explication

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 51
    Points : 46
    Points
    46
    Par défaut
    Okey le voici :

    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
    <?php 
     
    { 
    //je récupère les données du formulaires et les enregistre dans des variables
    $pseudo=addslashes($_POST['pseudo']);
    $email=addslashes($_POST['email']);
    $commentaires=addslashes($_POST['commentaires']);
     
    $atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   // caractères autorisés avant l'arobase
    $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine)
     
    $regex = '/^' . $atom . '+' .   // Une ou plusieurs fois les caractères autorisés avant l'arobase
    '(\.' . $atom . '+)*' .         // Suivis par zéro point ou plus
                                    // séparés par des caractères autorisés avant l'arobase
    '@' .                           // Suivis d'un arobase
    '(' . $domain . '{1,63}\.)+' .  // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
                                    // séparés par des points
    $domain . '{2,63}$/i';          // Suivi de 2 à 63 caractères autorisés pour le nom de domaine
                                    // test de l'adresse e-mail	
     
    if (preg_match($regex, $email)) {
    echo '<p class="contenu">Votre adresse E-mail est valide, Votre message a bien été envoyé. Merci.</p><p class="contenu"><a href="accueil.php">Retour &agrave; la page d accueil.</a></p><p>&nbsp;</p>';
        } else {    
    echo 'L adresse e-mail que vous avez fournit n est pas valide, <a href="inscription.php">retour à la page d inscription.';
     
    }
    $destinataire='newsletter@domaine.com'; //adresse mail de la personne qui recevra les messages								
    }
     
    	  $emailmess= $email; //email de l expéditeur 
    	  //création du message en html 
    			 	$messagemail='Vous avez un nouveau message <br/><br/>Détails du message :<br/><br/> <u><b>Pseudo</b></u>: '.$pseudo.'<br/><br/><u><b>Email</b></u>: &nbsp;'.$email.'<br/><br/> <u><b>Commentaires</u></b>:&nbsp;'.$commentaires;
                    $objetmail='Nouveau message de '.$pseudo;
                 	$headers='From:'.$emailmess."\r\n".'To:'.$destinataire."\r\n".'Subject:'.$objetmail."\r\n".'Content-type: text/html; charset= iso-8859-1'."\r\n".'Sent:'.date('l, F d, Y H:i');
    				$headers .= 'MIME-version: 1.0\n';
                 if (mail($destinataire, $objetmail, $messagemail, $headers) )
                 {
    				$Envoi='submit';
                   }
     
     
    ?>

  7. #7
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Tu te compliques...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $errors = array();
     
    $mail = filter_input( INPUT_POST, 'mail', FILTER_VALIDATE_EMAIL );
            if( $mail === NULL )
            {
                $errors[] = 'Vous devez renseigner votre adresse de courrier &eacute;lectronique.';
            }
            // Si le mail fourni n'est pas valide
            elseif( $mail === false )
            {
                $errors[] = 'Votre adresse de courrier &eacute;lectronique n\'est pas valide.';
                $mail = filter_input( INPUT_POST, 'mail', FILTER_SANITIZE_EMAIL );
            }
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 51
    Points : 46
    Points
    46
    Par défaut
    alors en fait j'ai suivi ( à la lettre ) le tuto qui m'avait été donné en lien ce matin.
    Sinon ce code Blueice, je le mets à quel endroit dans le code?

  9. #9
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Le code n'est pas à insérer tel quel, c'est un exemple avec les fonctions de filtrage de PHP5.
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

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

Discussions similaires

  1. [Mail] verifie une adresse mail avant envoi
    Par nebil dans le forum Langage
    Réponses: 3
    Dernier message: 29/03/2006, 01h12
  2. Comment tester une adresse mail ?
    Par jackop dans le forum Langage
    Réponses: 5
    Dernier message: 08/09/2005, 16h19
  3. Réponses: 13
    Dernier message: 03/06/2005, 11h26
  4. [JFormattedTextField ]validité d'une adresse mail
    Par gege2mars dans le forum Composants
    Réponses: 3
    Dernier message: 14/01/2005, 16h55

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