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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Voici mes problèmes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
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.
Partager