begin process at 2012 05 31 19:28:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

Verification de validité du format email dans un formulaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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>';
}

1 2

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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales