Accueil > Forum > > > > Verification de validité du format email dans un formulaire
Verification de validité du format email dans un formulaire
samedi 5 mars 2011 à 18:00:39 |
Verification de validité du format email dans un formulaire

carbonaro09
|
Bonjour a tous
Je viens d'essayer d'implémenter un petit morceau de code pour vérifier la validité des adresses mail remplies dans mon formulaire de contact!
Malheureusement, Quelque soit l'adresse, valide ou non, l'email est envoyé et le contrôle ne semble pas être fait!
Avez vous une idée de la raison ?
Voici le mail présent dans mon formulaire (contact.php):
Code PHP :
<form action="envoi.php" method="post" enctype="application/x-www-form-urlencoded" name="formulaire">
<div ><strong>Send us a message</strong></div>
<div >Your name:<input type="text" name="nom" size="45" maxlength="100"></div>
<div >Your email adress:<input type="text" name="mail" size="45" maxlength="100"></div>
<div >Object:<input type="text" name="objet" size="45" maxlength="100"></div>
<div >Message:<textarea id="textarea_size" name="message" cols="50" rows="10"></textarea></div>
<div ><?php
require_once('recaptchalib.php');
$publickey = "..."; // Utiliser la clé que vous avez eu lors de l'inscription sur recaptcha.net
echo recaptcha_get_html($publickey); // Affiche le captcha?></div>
<div ><input type="submit" name="Submit" value="Send"><input type="reset" name="Submit" value="Reset the form"></div>
</form>
Le code permettant de traiter ce formulaire est dans envoie.php :
Code PHP :
<?php require_once('recaptchalib.php'); // Ne pas réafficher cette ligne dans le cas où ce code est sur la même page que le formulaire
$privatekey = "..."; // Utiliser la clé privée qui est donnée sur votre compte recaptcha.net
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) { // Test si le captcha a bien été rempli
echo 'Captcha incorrect';} // Si le captcha n'est pas valide
else{
// Si le captcha est valide
/* Cette fonction sert à vérifier la syntaxe d'un email */
function VerifierAdresseMail($mail)
{ $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
if(preg_match($Syntaxe,$mail))
return true;
else
return false; }
$nom=$HTTP_POST_VARS['nom'];
$mail=$HTTP_POST_VARS['mail'];
$objet=$HTTP_POST_VARS['objet'];
$message=$HTTP_POST_VARS['message'];
// On va vérifier les variables et l'email ...
$mail=htmlentities($_POST['adresse']);
if(VerifierAdresseMail($mail))
echo '<p>Votre adresse est valide.</p>';
else
echo '<p>Votre adresse e-mail n\'est pas valide.</p>';
/////voici la version Mine
$headers = "MIME-Version: 1.0\r\n";
//////ici on détermine le mail en format text
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
////ici on détermine l'expediteur et l'adresse de réponse
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";
$subject="$objet";
$destinataire="contact@contact.com";
$body="$message";
if (mail($destinataire,$subject,$body,$headers)) {
echo "Thank you, your message has been sent<br>";
} else {
echo "Sorry, your message has not be sent to a technical issue";
} ?>
Merci de bien vouloir m'aider!
Carbonaro
|
|
samedi 5 mars 2011 à 22:15:39 |
Re : Verification de validité du format email dans un formulaire

phpAnonyme
|
lut,
Si tu ne sais pas le faire en regex, tu peux toujours utiliser un filtre ( DOC PHP) avec le filtre de validation d'email ( DOC PHP)
______________________________________________________________________
|
|
samedi 5 mars 2011 à 22:51:42 |
Re : Verification de validité du format email dans un formulaire

carbonaro09
|
Salut,
Merci pour ta réponse!
Je pense que mon erreur ne doit pas être très grande! Je persiste et aimerai comprendre la raison pour laquelle cela ne fonctionne pas!
Une idée ?
Merci,
|
|
dimanche 6 mars 2011 à 12:22:23 |
Re : Verification de validité du format email dans un formulaire

cod57
|
bonjour
ton code fonctionne
Code PHP :
<?php
$error="";
// require_once('recaptchalib.php'); // Ne pas réafficher cette ligne dans le cas où ce code est sur la même page que le formulaire
/*$privatekey = "..."; // Utiliser la clé privée qui est donnée sur votre compte recaptcha.net
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]); */
/*LA J AI PAS TOUT TON CODE OK JE BLEUFF LE CONTROLE*/
if (1==0) { // Test si le captcha a bien été rempli
echo 'Captcha incorrect';} // Si le captcha n'est pas valide
else{
// Si le captcha est valide
/* Cette fonction sert à vérifier la syntaxe d'un email */
function VerifierAdresseMail($mail)
{ $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
if(preg_match($Syntaxe,$mail))
return true;
else
return false; }
/*ma propos*/
if(isset($_POST['nom']) && !empty($_POST['nom'])){
$nom=$_POST['nom'];$error=NULL;}
else{
echo $error='Non vide - <a href="javascript:history.back();">Retour au formulaire</a>';exit;
}
if(isset($_POST['mail']) && !empty($_POST['mail'])){
$mail=$_POST['mail'];$error=NULL;
}else{
echo $error='Mail vide - <a href="javascript:history.back();">Retour au formulaire</a>';exit;
}
if(isset($_POST['objet']) && !empty($_POST['objet'])){
$objet=$_POST['objet'];$error=NULL;
}else{
echo $error='Objet vide - <a href="javascript:history.back();">Retour au formulaire</a>';exit;
}
if(isset($_POST['message']) && !empty($_POST['message'])){
$message=$_POST['message'];$error=NULL;
}else{
echo $error='Message vide - <a href="javascript:history.back();">Retour au formulaire</a>';exit;
}
// On va vérifier les variables et l'email ...
$mail=htmlentities($mail); /*TU AVEZ UNE ERREUR ICI*/
if(VerifierAdresseMail($mail))
/*fin propo*/
echo '<p>Votre adresse est valide.</p>';
else
echo '<p>Votre adresse e-mail n\'est pas valide.</p>';
/////voici la version Mine
$headers = "MIME-Version: 1.0\r\n";
//////ici on détermine le mail en format text
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
////ici on détermine l'expediteur et l'adresse de réponse
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";
$subject="$objet";
$destinataire="contact@contact.com";
$body="$message";
if (mail($destinataire,$subject,$body,$headers)) {
echo "Thank you, your message has been sent<br>";
} else {
echo "Sorry, your message has not be sent to a technical issue";
}
}
?>
deux trucs
$HTTP_POST_VARS ON UTILISE $_POST
PUIS TU as mis 'adresse' et pas 'mail' dans ta var POST
A++
|
|
dimanche 6 mars 2011 à 21:11:57 |
Re : Verification de validité du format email dans un formulaire

carbonaro09
|
Bonjour Code57,
Merci d'avoir pris le temps de regarder tout ca! Et merci pour les modifications apportées
Cela ne semble toujours pas fonctionner.
La validité de l'adresse mail est vérifiée MAIS même lorsque celle ci est incorrecte, malgré le message "Votre adresse e-mail n'est pas valide." le mail est envoyé!
Il doit y avoir un probleme vers la fin du code!
Une idée ?
Merci par avance
Carbonaro
|
|
dimanche 6 mars 2011 à 21:47:29 |
Re : Verification de validité du format email dans un formulaire

cod57
|
bonsoir
j'ai testé ton code sur mon serveur avec mes corrections il fonctionne
bien sans bugs ... mais comme j'ai pas tout tes fichiers et je vois pas
tout ... tu comprends
ton besoin du départ était le contrôle du mail !
j'ai fait une source ce dimanche car ce genre de problème est souvent
posté sur le forum
http://www.phpcs.com/codes/FORMULAIRE-VERS-COURRIEL-BASIQUE-AVEC-CONTROLE-CAPTCHA-ANTI_52898.aspx
tu peux la charger, elle reprend en gros l'idée de ton code et d'autres
webmasters
a++
|
|
dimanche 6 mars 2011 à 22:07:02 |
Re : Verification de validité du format email dans un formulaire

carbonaro09
|
Bonsoir,
C'est surprenant!
En fait dans mon code, lorsque l'email est non valide, on a
Code PHP : echo '<p>Votre adresse e-mail n\'est pas valide.</p>';
En revanche il n'y a rien pour arrêter la suite du code:
Code PHP :
/////voici la version Mine
$headers = "MIME-Version: 1.0\r\n";
//////ici on détermine le mail en format text
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
////ici on détermine l'expediteur et l'adresse de réponse
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";
$subject="$objet";
$destinataire="contact@contact.com";
$body="$message";
if (mail($destinataire,$subject,$body,$headers)) {
echo "Thank you, your message has been sent<br>";
} else {
echo "Sorry, your message has not be sent to a technical issue";
}
}
?>
Il n'y a dans ma compréhension rien qui stop l'envoi du mail!
Qu'en penses tu ?
J'essaie de comprendre!
Merci par avance!
|
|
dimanche 6 mars 2011 à 22:22:29 |
Re : Verification de validité du format email dans un formulaire

cod57
|
question triviale
$destinataire=" contact@contact.com";
as tu mis ton mail ici et pas contact@contact.com
je vois pas ! mais as tu essayé ma source, elle marche bien
http://www.phpcs.com/codes/FORMULAIRE-VERS-COURRIEL-BASIQUE-AVEC-CONTROLE-CAPTCHA-ANTI_52898.aspx
essaie de l'adapter ou suivre sa logique
- on verifie d'abord les $_POST
- on filtre
- verfifie le captcha $_POST['code'] === $_SESSION ['verif']
- on traite, envoi
- affiche le message raté / reussi
|
|
lundi 7 mars 2011 à 10:03:51 |
Re : Verification de validité du format email dans un formulaire

carbonaro09
|
Salut,
C'est étrange! Oui, j'ai bien mis mon adresse!
Je ne comprends pas pourquoi ce code ne fonctionne pas avec moi!
Oui, je vais essayer d'adapter le nouveau code, mais je voulais éviter de le faire, car le code que j'ai posté correspond déjà à un code adapté!
Merci,
|
|
lundi 7 mars 2011 à 10:32:27 |
Re : Verification de validité du format email dans un formulaire

ludwig59
|
Réponse acceptée !
Bonjour,
Il faut faiire l'envoi de l'email seulement si l'email est correcte
Code PHP :
if(VerifierAdresseMail($mail))
{
echo '<p>Votre adresse est valide.</p>';
/////voici la version Mine
$headers = "MIME-Version: 1.0\r\n";
//////ici on détermine le mail en format text
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
////ici on détermine l'expediteur et l'adresse de réponse
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";
$subject="$objet";
$destinataire="contact@contact.com";
$body="$message";
if (mail($destinataire,$subject,$body,$headers)) {
echo "Thank you, your message has been sent<br>";
}
else {
echo "Sorry, your message has not be sent to a technical issue";
}
}
else
{
echo '<p>Votre adresse e-mail n\'est pas valide.</p>';
}
|
|
Cette discussion est classée dans : message, mail, code, formulaire, email
Répondre à ce message
Sujets en rapport avec ce message
pb de formulaire mail lié à une variable GET [ par melanijasmin ]
salut à tous !Je fais appel à vos lumières expertes, car je bloque depuis plusieurs jours sur un "%@!!& " de formulaire auquel je ne comprends plus r
code envoie mail par formulaire [ par voidmain ]
Bonjour à tous, je suis en train de tester un code pour l'envoie de mail par formulaire avec vérification des champs et du format de l'email, tout ce
Pb, Formulaire / Mail [ par MaSenCo ]
Bonjour,Je viens de mettre un formulaire / mail sur mon site, et j'ai un petit problème avec la fonction mail, c'est à dire que je reçois bien le mail
Récup 2 données d'un formulaire --- à l'aide!!!!!! [ par ladafan ]
Bonjour tout le monde,J'ai un gros probleme de recup de mes données sur un formulaire...Je voudrai qu'elles me soient envoyées sur mail...Voici la pag
Fontion mail: destinataire cci et message html [ par taxitat ]
Bonjour à tous,Comme bcp d'autres, j'ai un formulaire dont le code est plus bas. Je voudrais deux choses:* Au même temps qu'un email est envoyé au "cl
fonction mail avec php [ par cyrilherve ]
salut à tous,je m'initie à l'utilisation de la fonction mail avec php. j'ai pris au hasard un script d'envoi d'e-mail dans un tutoriel d'apprentissage
Formulaire et envoi de mail [ par Becca ]
Bonjour, j'ai un petit problème avec le formulaire. En fait quand les personnes remplissent le formulaire je voudrais recevoir par mail leur réponse.
Fonction mail() [ par psyckan ]
Bonjour,Je crée un site (hebergé sur fasthosts) pour une association et je veux créer un formulaire qui permet à un utilisateur de s'enregistrer.Pour
creation mail.php [ par mrfoifi ]
bonjour , j'ai un problème sous mon site car c'est un flash et qu'on je fait envoyé les message de mon flash a mon boite email il me faut le f
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|