Difficulté avec formulaire PHP
Bonjour,
J'ai un formulaire simple sur mon site web sur lequel je veux que les visiteurs indiquent des commentaires. Les champs sont tous obligatoires.
Le formulaire fonctionne bien, et le message de confirmation du fichier php3 fonctionne bien sauf
- Les champs vides sont envoyés quand même!!
- Et je reçois un courriel avec les entrées vides. ( exemple: Nom: Ville: etc...)
Voici l'URL du formulaire
http://www.educanin.com/commentairesphp.htm
Voici le CODE HTML du Formulaire
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <form name="Commentaires" action="commentairesform.php3" method="post" enctype="text/plain" name="Commentaires">
<input type="hidden" name="Titre du formulaire" value="COMMENTAIRES DE CLIENTS" />
<font face="Tahoma"><div style="text-align: center"><b><font size="5" color="#0066cc">Élève ou ancien élève?</font></b></div></font><br>
<font size="5" color="#ff0000"><b><i><blink><div style="text-align: center"><strong>ENVOYEZ NOUS VOS COMMENTAIRES !</strong></div></blink></i></b></font><br />
<font face="Tahoma, Times New Roman, Verdana" size="3"><b><div style="text-align: center">Nous serons heureux de les ajouter ici</div></b></font><br />
<div style="text-align: center">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" summary="">
<col width="40%">
<tr>
<td><b>Votre nom (ou prénom)</b></td>
<td><input type="text" name="Nom" size="40" maxlength="256" /></td>
</tr>
<tr>
<td><b>Votre ville</b></td>
<td><input type="text" name="Ville" size="40" maxlength="256" /></td>
</tr>
<tr>
<td><b>Nom du chien</b></td>
<td><input type="text" name="Nom_du_chien" size="40" maxlength="256" /></td>
</tr>
<tr>
<td><b>Votre courriel<font color="#FF0000">*</font></b></td>
<td><input type="text" name="Courriel" size="40" maxlength="256" /></td>
</tr>
</table>
</div><div style="text-align: center"><b><font color="#FF0000">*</font>Pour vous répondre</b></div><br />
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0" summary="">
<tr>
<td width="250"><div style="text-align: center"><img src="images/chiot_ecrit.gif" border="0" width="50" height="73" /></div></td>
<td width="250"><div style="text-align: center"><img src="images/emailput.gif" border="0" width="107" height="35" /></div></td>
</tr>
</table><br />
<b><font size="4"><div style="text-align: center">VOS COMMENTAIRES</div></font></b><br />
<div style="text-align: center"><textarea name="Commentaires" cols="50" rows="10">
</textarea></div><br />
<div style="text-align: center"><input type="submit" value="ENVOYER" />
<input type="reset" value="EFFACER" /></div>
</form><?xml version="1.0" encoding="windows-1252"?> |
et voici le CODE PHP
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| <?php /* Date de création: 2006-09-14 */ ?>
<html>
<body>
<?php
//Trouvé sur http://www.toulouse-renaissance.net/c_outils/
// DEBUT Fonction de contrôle du mail PHP-UNIX
function check_mail($champ4) {
if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $champ4)) ||
(preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$champ4)) ) {
$host = explode('@', $champ4);
if(checkdnsrr($host[1].'.', 'MX') ) return true;
if(checkdnsrr($host[1].'.', 'A') ) return true;
if(checkdnsrr($host[1].'.', 'CNAME') ) return true;
}
return false;
}
// FIN Fonction de contrôle du mail
$MailTo = "commentaires@educanin.com"; //adresse à laquelle sera envoyé le contenu du formulaire
$MailCc = "autre-mail@domaine.com"; // adresse à laquelle sera envoyé un communiqué
$MailSubject = "Commentaires via Educanin"; //texte qui va figurer dans le champ "sujet" du email
$MailHeader = "From: expediteur@educanin.com"; //adresse email qui va figurer dans le champ "expéditeur" du email et qui peut être remplacé par la variable "$champx" ("$champ3").
/* Les routines suivantes permettent à chacune des variables de prendre la valeur des champs du formulaire et de les stocker ensuite dans la variable globale MailBody qui constituera le corps du message */
$Envoi = 1; //initialisation de la variable envoi à 1
if (Nom == ""){ //nom du premier champ
echo("Vous n'avez pas mentionné votre nom !<br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
$Envoi = 0; //si le champ1 n'a pas été rempli, la variable envoi prend la valeur de 0
}
else {
$MailBody .= "Nom : $Nom \n"; //si le champ1 contient de l'information, elle est stockée dans la variable MailBody
}
if (Ville == ""){
echo("Vous n'avez pas mentionné votre ville !<br>");
$Envoi = 0;
}
else {
$MailBody .= "Ville : $Ville\n";
}
if (Nom_du_chien == ""){ //Ne pas mettre d'espace, remplacer par _
echo("Vous n'avez pas mentionné le nom de votre chien !<br>");
$Envoi = 0;
}
else {
$MailBody .= "Nom du chien : $Nom_du_chien\n";
}
if (Courriel == ""){
echo("Vous n'avez pas indiqué votre adresse de courriel !<br>");
$Envoi = 0;
}
else {
$MailBody .= "Courriel : $Courriel\n";
}
if (Commentaires == ""){
echo("Vous n'avez pas inclus de commentaire !<br>");
$Envoi = 0;
}
else {
$MailBody .= "Commentaires : $Commentaires\n";
}
//Envoi du message
if ($Envoi == 1) { //vérification que la variable envoi est bien à 1
mail($MailTo, $MailSubject, $MailBody, $MailHeader); //envoi du message
//mail($MailCc, $MailSubject, $MailBody, $MailHeader); //envoi du communiqué (enlever // pour le rendre opérationnel
echo("<p>Votre message a bien été envoyé.<br>Merci de vos commentaires."); echo("<p> </p><p> </p><p align=\"center\"><a href=\"http://www.educanin.com/commentairesphp.htm\"><strong>Retour</strong></a></p>"); //affichage d'un message de confirmation.
}
?>
</body>
</html> |
Merci beaucoup de votre aide.