Verifier un champs EMAIL

Résolu
djsquinje Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
Mihawk Messages postés 4753 Statut Contributeur -
Bonjour,
Je voudrais tester en plus de mon code ci dessous le champs email pour vérifier que l'email rentrer et bien un email

<?php

$message = '';

function show_post($name) {
if(isset($_POST[$name])) {
echo addslashes(htmlspecialchars($_POST[$name]));
}
}

function show_radio($name, $value, $default=false) {
if(isset($_POST[$name])) {
if($_POST[$name] == $value) {
echo ' checked="checked"';
}
echo 5;
} elseif($default == true) {
echo ' checked="checked"';
}
}

if(isset($_POST['envoyer'])) {
$error = false;
foreach(array('nom', 'prenom', 'addresse', 'ville', 'tel', 'mail', 'horaire', 'event') as $name) {
if(!isset($_POST[$name]) OR $_POST[$name] == '') {
$error = true;
}
}

if($error == true) {
$message = '<div style="text-align: center;"><h3 style="color: red;">Vous n\'avez pas remplie les champs obligatoire, veuillez les remplirs avant d\'envoyer...</h3></div>';
} else {
include('mail.php');
exit();
}
}

Merci de vos réponse :)

--
Pas de problèmes, que...des solutions !!! :-)
SI VOUS ESTIMEZ QUE VOTRE PROBLEME EST RESOLU, MARQUEZ-LE COMME TEL SVP, MERCI.

5 réponses

  1. jeremy.s Messages postés 1248 Statut Membre 79
     
    Salut !

    Alors ya plusieurs méthodes pour vérifier un email, mais la plus simple je pense est d'utiliser une expression régulière. L'avantage c'est que c'est assez simple, mais l'inconvéviant est que ca va te vérifier la forme, donc si c'est bien un truc du style toto@monsite.fr, cela ne va pas te vérifier si l'adresse est réelle ou non.
    0
    1. djsquinje Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   272
       
      Je prend celle la, ce n'est pas un soucie car ces un site privée et les client non aucun intérêt à marquer ce genre d'adresse (toto@monsite.fr)..

      Comment la mettre en place dans mon code au dessus ? :)
      0
    2. jeremy.s Messages postés 1248 Statut Membre 79
       
      https://www.commentcamarche.net/faq/855-php-verifier-le-format-d-une-adresse-mail
      voilà :)
      0
    3. djsquinje Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   272
       
      Merci, mais je l'inserer ou ce code ? J'y connai rien en developpement...
      0
  2. loupix
     
    Il existe aussi une méthode HTML5 bien sympathique :

    <input type="email" name="user_email">

    ou avec une expression régulière

    <input type="email" pattern="[^ @]*@[^ @]*" value="">
    0
    1. Utilisateur anonyme
       
      Bonsoir,
      le problème avec le HTML 5 c'est que si l'utilisateur n'a pas fait de mise à jours de son navigateur, il pourra rentré n'importe quoi.
      0
    2. Mihawk Messages postés 4753 Statut Contributeur 846
       
      Oui ou s'il sait bidouiller le Js
      0
  3. Mihawk Messages postés 4753 Statut Contributeur 846
     
    Si jamais tu venais à utiliser la méthode "expression régulière" alors utilise plutôt celle-ci :

    [a-z0-9!#$%&'*+/=?^_'{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_'{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
    


    C'est la regex la plus recommandée par la norme RFC 2822
    0
  4. djsquinje Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   272
     
    J'y connai rien en developpement... Comment inserer toute vos astuce dans mon code ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mihawk Messages postés 4753 Statut Contributeur 846
     
    if(preg_match("#^[a-z0-9!#$%&'*+/=?^_'{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_'{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$#", $_POST['email']))
    {
         // Ici tu fais ce que tu as à faire si l'e-mail est valide
    } else {
        // Si l'e-mail n'est pas valide
    }
    

    0
    1. djsquinje Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   272
       
      Il fonctionne, mais vous pouvez m'expliquer en bref ce code pour que je puisse le comprendre ? : )
      0
    2. Mihawk Messages postés 4753 Statut Contributeur 846
       
      Alors...

      On utilise la méthode "preg_match()" qui, comme sa documentation l'indique, vérifie qu'une chaîne de caractères respecte bien un motif donné. Si elle le respecte, la méthode renvoie "vrai" ; sinon "faux". c'est pour ça qu'on peut mettre if(preg_match())...

      preg_match() prend donc deux paramètres :

      preg_match($motif, $chaineDeCaractère);

      Dans notre cas la chaine de caractères est la variable $_POST['email']
      Le motif lui, est écrit en expression régulière (ou expression rationnelle) qui est un modèle qui nécessite un apprentissage poussé avant d'être utilisé.

      https://www.commentcamarche.net/contents/803-php-expressions-regulieres
      0