Bonjour,

Suite au départ d'un membre important de mon site, je me retrouve seul à m'occuper de celui ci.
Ne connaissant pas bien le php je suis quand même obligé de créer un formulaire de contact qui filtrerait déjà pas mal de spams plutôt que de laisser trainer mon email (mailto) sur les pages.
J'ai donc utilisé un générateur de formulaire php des plus simples (nom prénom email identité message) puisque les multiples scripts trouvés ci et là ne marchaient pas du tout et étaient trop complexes.
(quelque chose que je puisse matriser au minimum quoi)

Alors voilà : le code généré fonctionne partiellement :
-Je recois un mail de moi même (quelque soit l'email entré) et vide (aucune information) et donc impossible de répondre puisque je n'ai pas l'adresse du destinataire.
Le site est hébergé chez ovh.


Voici le code en question :
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
148
149
150
151
152
153
154
155
 
<?php 
 
$email_dest = "monemail@monemail.com"; 
 
if ($_POST['envoi']) { 
 
$message_remerciement = "Votre message a bien été transmis"; 
 
// E-mail headers: 
$headers ="MIME-Version: 1.0 \n"; 
$headers .="From: mail\n"; 
$headers .="Content-Type: text/html; charset=iso-8859-1 \n"; 
 
$subject = "Formulaire de contact"; 
 
$partie_entete = "<html><head> 
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1> 
</head> 
<body bgcolor=#FFFFFF>"; 
 
for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) { 
$partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>"; 
} 
 
if ($_POST['nbre_zone_email'] != 0) { 
$partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>"; 
} 
 
if ($_POST['nbre_zones_texte'] != 0) { 
$partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>"; 
$partie_zone_texte = stripslashes($partie_zone_texte); 
} 
 
$fin = "</body></html>"; 
 
$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin; 
 
// Send the e-mail 
if (@!mail($email_dest,$subject,$sortie,$headers)) { 
echo("Envoi du formulaire impossible"); 
} // Closing if !mail... 
 
} // Closing if edit 
?><html> 
<head> 
<title>Assistant d'envoi de formulaires</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<script language="JavaScript"><!-- Hide script from older browsers 
function verifSelection() {if (mail_form.champ1.value == "") { 
alert("Champ invalide") 
return false 
} if (mail_form.champ2.value == "") { 
alert("Champ invalide") 
return false 
} if (mail_form.champ3.value == "") { 
alert("Champ invalide") 
return false 
} if (mail_form.zone_email.value == "") { 
alert("Email invalide") 
return false 
} 
 
invalidChars = " /:,;'" 
 
for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters? 
badChar = invalidChars.charAt(i) 
 
if (mail_form.zone_email.value.indexOf(badChar,0) > -1) { 
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.") 
mail_form.zone_email.focus() 
return false 
} 
} 
 
atPos = mail_form.zone_email.value.indexOf("@",1) // there must be one "@" symbol 
if (atPos == -1) { 
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.') 
mail_form.zone_email.focus() 
return false 
} 
 
if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol 
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.') 
mail_form.zone_email.focus() 
return false 
} 
 
periodPos = mail_form.zone_email.value.indexOf(".",atPos) 
 
if (periodPos == -1) { // and at least one "." after the "@" 
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.') 
mail_form.zone_email.focus() 
return false 
} 
 
if (periodPos+3 > mail_form.zone_email.value.length) { // must be at least 2 characters after the 
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.') 
mail_form.zone_email.focus() 
return false 
}if (mail_form.zone_texte.value == "") { 
alert("Message invalide") 
return false 
} } // Fin de la fonction 
 
</script> 
</head> 
 
<body> 
<form name="mail_form" method="post" action="<?=$PHP_SELF?>" onSubmit="return verifSelection()"> 
<div align="center"></div> 
<p align="center"> 
<?php 
if ($message_remerciement) { 
echo("<font face=Verdana size=2>"); 
echo(stripslashes($message_remerciement)); 
echo("</p></body></html>"); 
exit(); 
} 
?> 
<table width="566" border="0" align="center"> 
<p align="center"> 
</p><tr> 
<td><font face="Verdana" size="2">Votre nom</font></td> 
<td><input name="champ1" type="text"></td> 
</tr><tr> 
<td><font face="Verdana" size="2">Votre prénom</font></td> 
<td><input name="champ2" type="text"></td> 
</tr><tr> 
<td><font face="Verdana" size="2">Membre du forum</font></td> 
<td><input name="champ3" type="text"></td> 
</tr><tr> 
<td><font face="Verdana" size="2">Vous êtes</font></td> 
<td><input name="champ4" type="text"></td> 
</tr><tr> 
<td width><font face="Verdana" size="2">E-Mail</font></td> 
<td width><input name="zone_email" type="text"></td> 
</tr><tr> 
<td valign="top"><font face="Verdana" size="2">Votre message</font></td> 
<td><textarea name="zone_texte" cols="50" rows="10"></textarea></td> 
</tr><tr> 
<td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="4"> 
<input name="nbre_zones_texte" type="hidden" value="1"> 
<input name="nbre_zone_email" type="hidden" value="1"> 
<input name="titre_champ1" type="hidden" value="Votre nom"><input name="titre_champ2" type="hidden" value="Votre prénom"><input name="titre_champ3" type="hidden" value="Membre du forum"><input name="titre_champ4" type="hidden" value="Vous êtes"><input name="titre_email" type="hidden" value="E-Mail"><input name="titre_zone" type="hidden" value="Votre message"></td> 
<td><div align="center"> 
<input type="reset" name="Reset" value="Effacer"> 
<input type="submit" name="envoi" value="Envoyer"> 
</div></td> 
</tr> 
</table> 
<div align="center"></div> 
</form> 
</body> 
</html>
Est ce que quelqu'un peut me dire où le code n'est pas bon et surtout pourquoi ? Car j'essaye quand même de comprendre ce fichu langage ($_POST ne marche apparement pas ?)
Configuration: Windows XP
Internet Explorer 7.0