Bonjour,

Je tente en vain de vérifier mon formulaire php sans passer par du java-script.
Surtout d’avoir l’echo juste en dessous, en cas d’erreur et non pas sur une autre page.
Je suis parti d’après le formulaire de contact Slide-In avec Jquery par Janko Jovanovic, obtenu sur ce site.
Il fonctionne très bien, j’ai rajouté du php en dessous pour les contrôles (Nom, Email et Message).
Mais ça bug, les echos s’affichent tous à l’ouverture du formulaire….
Voici le code du formulaire et du php en dessous, j’ai omis les détails du css etc.

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
 
<div id="contactFormPosition">
<div id="Formulaire">
<form id="contact" action="<?= $_SERVER["PHP_SELF"] ?>" method="post" enctype="multipart/form-data" name="form1"> 
<fieldset> 
<label for="Nom">Prénom et Nom *</label>
<input id="Nom" name="Nom" type="text" value=""/>
<label for="Email">Adresse Email *</label>
<input id="Email" name="Email" type="text" value=""/>
<label for="Message">Votre message *</label>
<textarea id="Message" name="Message" rows="3" cols="20" ></textarea>
 
<a href="java-script: new_captcha();">Recopier et/ou modifier le code</a>&nbsp;&nbsp;
 
<img alt="" src="image.php" id="captcha" style="border:0px; width:100px; height:55px"/>
&nbsp;&nbsp; <input type="text" name="code" /><br/><br/>
 
<p style="text-align:center"> <input type="submit" name="sub" value="Envoyer" /></p>
 
</fieldset>
/*------------------séparation du formulaire pour intégrer le php----------------*/
<div>
<?php
function VerifierAdresseMail($Email){
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
if(preg_match($Syntaxe,$Email)){
return true;
}else
{
return false;
}
}
 
/* PetitClean($var,$lg) */
/* $var la varible traiter */
/* la longueur de sortie */ 
 
function PetitClean($var,$lg){
$var=strip_tags($var);
/* troncature on ne va pas me poster un roman */
if(strlen($var)>$lg){
$var = substr($var, 0, $lg);
$last_space = strrpos($var, " ");
$var = substr($var, 0, $last_space);
}else{
$lg=0;
} 
return $var;
}
 
$error=NULL;
 
if(isset($_POST['Nom']) && !empty($_POST['Nom'])){
$nom=$_POST['Nom'];$error=NULL;
//filtrage 
$nom=PetitClean($Nom,30); /*30 caractres maxi*/
}else{
echo $error='LE NOM EST VIDE';exit;
}
 
if(isset($_POST['Email']) && !empty($_POST['Email'])){
$Email=$_POST['Email'];$error=NULL;$Email=htmlentities($Email);
//filtrage
$Email=PetitClean($Email,60);
}else{
echo $error='ADRESSE MAIL VIDE';exit;
}
 
if(isset($_POST['Message']) && !empty($_POST['Message'])){
$Message=$_POST['Message'];$error=NULL;
//filtrage
$Message=PetitClean($Message,300);
}else{
echo $error='LE MESSAGE EST VIDE';exit;
}
 
if(VerifierAdresseMail($Email)){
//echo 'mail ok';
}else{
echo $error='VOTRE ADRESSE MAIL N EST PAS VALIDE';exit;
}
 
if($_SERVER['REQUEST_METHOD']==='POST' && isset($_POST['code']) && !empty($_POST['code']) && $_POST['code']===$_SESSION['verif']){ 
 
 
$destinataire="monadresse@fournisseur.fr";
$subject=$objet;
$body=$message;
 
/*format du mail*/
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
/*ici on dtermine l'expediteur et l'adresse de réponse*/
$headers .= "From: $Nom <$Email>\r\nReply-to : $Nom <$Email>\nX-Mailer:PHP";
/*tout est ok*/
 
if (Email($destinataire,$subject,$body,$headers)){
 
$Message=NULL;
$Email=NULL;
$Nom=NULL;
 
$_POST=NULL;
$_SESSION['verif']=NULL; 
$destinataire=NULL;
echo 'VOTRE MESSAGE EST ENVOYE, MERCI!';exit; 
 
}else{
/*petite secu*/
$Message=NULL;
$Email=NULL;
$Nom=NULL;
 
$_POST=NULL;
$_SESSION['verif']=NULL; 
$destinataire=NULL;
echo 'DESOLE VOTRE MESSAGE N A ETE ENVOYE!';exit;
}
 
$Message=NULL;
$Email=NULL;
$Nom=NULL;
 
$_POST=NULL;
$destinataire=NULL;
 
} else {
echo $error='ERREUR SUR LE CODE DE SECURITE</h3>';exit;
}
?>
</div>
/*------------------Fin de la séparation du formulaire pour intégrer le php----------------*/
 
</form>
</div>
<div id="contactLink"></div>
</div>
Ais-je bien noté
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 action="<?= $_SERVER["PHP_SELF"] ?>"
Je n’arrive pas à trouver mon erreur.
Merci pour votre aide
Bien cordialement.