Formulaire email problème
Bonjour à tous.
je me permets d'écrire sur le forum afin de solliciter vos compétences.
J'aimerais réaliser un formulaire email relativement simple.
Voici le code de ma page formulaire.html :
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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
<script src="verif.php" type="text/javascript"></script>
<script type="text/javascript">
function validation(f){
ok=true;
if (f.sender_name.value == "" ) {
alert("Le champ Nom et prénom doit être complété");
ok = false;
return ok;
}
if (f.sender_email.value == "" ) {
alert("Le champ Email doit être complété");
ok = false;
return ok;
}
email = f.sender_email.value;
if (f.sender_email.value == "" ) {
alert("Le champ Email est obligatoire");
ok = false;
return ok;
}
else {
p1 = email.indexOf("@");
p2 = email.lastIndexOf(".");
if( p1 == -1) {
alert("Il n'y a pas d'@ dans cette adresse");
ok= false;
}
else if( p2 == -1) {
alert("Il n'y a pas de point dans cette adresse");
ok= false;
}
else if( p2 < p1 ) {
alert("Il manque un point après l'@");
ok= false;
}
return ok;
}
if (window.document.form.textarea.value == "" ) {
alert("Le champ Nom et prénom doit être complété");
ok = false;
return ok;
}
return ok;
}
</script>
<style type="text/css">
body{
background-color: #d9f6ff;
margin:0;
padding: 0;
padding-top: 0.15em;
font-size: 90%;
}
label{
text-align: center;
font-weight: bolder;
}
legend.legende{
margin: auto;
width: 1%;
display: block;
border: 2px solid white;
color: white;
padding: 0.25em;
margin-bottom: 1em;
font-size: 1.2em;
font-weight: bolder;
}
fieldset{
padding: 0.5em;
color: white;
border: 2px solid white;
border-bottom: none;
padding-bottom: 1em;
width: 50%;
text-align:center;
background-color: #2B7DA3;
}
input.bouton{
color: #006c94;
font-weight:bolder;
}
input{
background-color: white;
}
textarea{
background-color: white;
margin-bottom: 0.35em;
}
p{
text-align: left;
}
form{
text-align:center;
}
</style>
</head>
<body>
<form name="form" id="form" method="post" action="verif.php onsubmit="return validation(this)">
<fieldset>
<legend class="legende">Formulaire de contact</legend>
<br />
<label for="sender_name">Nom et prénom (*) : </label>
<br />
<input type="text" name="sender_name" id="sender_name" size="30" />
<br />
<br />
<label for="sender_email">Email (*) : </label>
<br />
<input type="text" name="sender_email" id="sender_email" size="30" />
<br />
<br />
<label for="message">Message (*) : </label>
<br />
<textarea cols="50" rows="6" name="message" id="message"></textarea>
<br />
<input type="submit" class="bouton" value="Envoyer" /> -
<input type="reset" style="color: #006c94; font-weight:bolder" value="Annuler" />
<br />
<p>(*) Champ obligatoire</p>
</fieldset>
</form>
</body>
</html> |
Voici le code de ma page verif.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
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>
<body>
<?php
$msg = "Nom et prénom:\t$sender_name\n";
$msg .= "Email:\t$sender_email\n";
$msg .= "Message:\t$message\n\n";
$recipient = "cedric_wax@hotmail.com";
$subject = "Message d'un visiteur du site CHPTE";
$mailheaders = "From: My Web Site <> \n";
$mailheaders .= "Reply-To: $sender_email\n\n";
mail($recipient, $subject, $msg, $mailheaders);
echo "<html><head>";
echo "<title>Form Sent!</title></head><body>";
echo "<h1 align=center>Merci à vous $sender_name</h1>";
echo "<p align=center>";
echo "Nous avons bien reçu votre email.</p>";
echo "<p align=center>";
echo "Pour revenir sur la page d'accueil, cliquez <a href=\"http://www.chpte.be\">ici</a>.</p>";
echo "</body></html>";
?>
</body>
</html> |
Voici mes problèmes :
1) Lorsque j'arrive sur la page formulaire.html, il envoit déjà un email sans qu'on en fasse la demande. Comment arrêter ça ?
2) Lorsque j'actualise la page formulaire.html, il envoit également un email sans qu'on le lui demande. Comment stopper ça ?
3) Lorsque je valide et que je n'ai pas entré d'adresse email, je vais avoir une alerte, donc le srcipt fonctionne MAIS il envoit aussi un mail. Comment faire pour qu'il ne le fasse pas.
En gros, que devrais-je changer dans ma ou mes page(s) pour qu'il envoit un email UNIQUEMENT quand toutes les lignes sont correctements remplies et pas lorsqu'on arrive sur la page ou lorsqu'on actualise.
Je vous dis un tout tout grand merci d'avance.