Verifier un champs EMAIL

Résolu/Fermé
djsquinje Messages postés 736 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 31 mai 2017 - 19 avril 2013 à 16:58
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 - 23 avril 2013 à 20:13
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 :)
A voir également:

5 réponses

jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
19 avril 2013 à 17:03
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
djsquinje Messages postés 736 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 31 mai 2017 255
19 avril 2013 à 17:56
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
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
19 avril 2013 à 18:12
https://www.commentcamarche.net/faq/855-php-verifier-le-format-d-une-adresse-mail
voilà :)
0
djsquinje Messages postés 736 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 31 mai 2017 255
20 avril 2013 à 18:47
Merci, mais je l'inserer ou ce code ? J'y connai rien en developpement...
0
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
Utilisateur anonyme
20 avril 2013 à 00:10
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
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
20 avril 2013 à 00:12
Oui ou s'il sait bidouiller le Js
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
20 avril 2013 à 00:13
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
djsquinje Messages postés 736 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 31 mai 2017 255
20 avril 2013 à 18:45
J'y connai rien en developpement... Comment inserer toute vos astuce dans mon code ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
20 avril 2013 à 19:24
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
djsquinje Messages postés 736 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 31 mai 2017 255
23 avril 2013 à 11:06
Il fonctionne, mais vous pouvez m'expliquer en bref ce code pour que je puisse le comprendre ? : )
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
23 avril 2013 à 20:13
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