Verifier un champs EMAIL

Résolu
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. 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. 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. https://www.commentcamarche.net/faq/855-php-verifier-le-format-d-une-adresse-mail
      voilà :)
      0
    3. Merci, mais je l'inserer ou ce code ? J'y connai rien en developpement...
      0
  2. 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. 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. Contributeur
      Oui ou s'il sait bidouiller le Js
      0
  3. Contributeur
    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
    1. J'y connai rien en developpement... Comment inserer toute vos astuce dans mon code ?
      0
      1. Contributeur
        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. Il fonctionne, mais vous pouvez m'expliquer en bref ce code pour que je puisse le comprendre ? : )
          0
        2. Contributeur
          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