Verifier un champs EMAIL

Résolu
djsquinje Messages postés 744 Date d'inscription   Statut Membre Dernière intervention   -  
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   -
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 :)

5 réponses

jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   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
djsquinje Messages postés 744 Date d'inscription   Statut Membre Dernière intervention   255
 
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   Statut Membre Dernière intervention   79
 
https://www.commentcamarche.net/faq/855-php-verifier-le-format-d-une-adresse-mail
voilà :)
0
djsquinje Messages postés 744 Date d'inscription   Statut Membre Dernière intervention   255
 
Merci, mais je l'inserer ou ce code ? J'y connai rien en developpement...
0
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
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
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Oui ou s'il sait bidouiller le Js
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   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
djsquinje Messages postés 744 Date d'inscription   Statut Membre Dernière intervention   255
 
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 4315 Date d'inscription   Statut Contributeur Dernière intervention   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
djsquinje Messages postés 744 Date d'inscription   Statut Membre Dernière intervention   255
 
Il fonctionne, mais vous pouvez m'expliquer en bref ce code pour que je puisse le comprendre ? : )
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   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