Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/04/2011, 13h50   #1
Membre habitué
 
Avatar de BRUNO71
 
Homme Bruno Langlois
Conseiller technique ELec
Inscription : janvier 2007
Messages : 289
Détails du profil
Informations personnelles :
Nom : Homme Bruno Langlois
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Conseiller technique ELec
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 289
Points : 123
Points : 123
Par défaut Formulaire sans Javascript

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 :
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 :
 action="<?= $_SERVER["PHP_SELF"] ?>"
Je n’arrive pas à trouver mon erreur.
Merci pour votre aide
Bien cordialement.
BRUNO71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 14h18   #2
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
voila :
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
<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 if (isset($_POST['Nom']) && empty($_POST['Nom'])){
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);
if(VerifierAdresseMail($Email)){
//echo 'mail ok';
}else{
echo $error='VOTRE ADRESSE MAIL N EST PAS VALIDE';exit;
}
}else if(isset($_POST['Email']) && empty($_POST['Email'])){
echo $error='ADRESSE MAIL VIDE';exit;
}
 
if(isset($_POST['Message']) && !empty($_POST['Message'])){
$Message=$_POST['Message'];$error=NULL;
//filtrage
$Message=PetitClean($Message,300);
}else if(isset($_POST['Message']) && empty($_POST['Message'])){
echo $error='LE MESSAGE EST VIDE';exit;
}
 
 
 
if($_SERVER['REQUEST_METHOD']==='POST'){ 
if(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>
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 20h54   #3
Membre habitué
 
Avatar de BRUNO71
 
Homme Bruno Langlois
Conseiller technique ELec
Inscription : janvier 2007
Messages : 289
Détails du profil
Informations personnelles :
Nom : Homme Bruno Langlois
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Conseiller technique ELec
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 289
Points : 123
Points : 123
Bonjour vorace,

Merci pour cette réponse rapide, que je vient de tester...
J'ai remis le code en entier ci-dessous...
J'obtiens l'erreur suivante:
Notice: Undefined index: verif in /home/www/bresseweb/www/index.php on line 280
Voici en code la ligne 279 et 280
Code :
1
2
3
 
if($_SERVER['REQUEST_METHOD']==='POST'){ 
if(isset($_POST['code']) && !empty($_POST['code']) && $_POST['code']===$_SESSION['verif']){
A quoi correspond cette erreur ?
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
 
            <div id="contactFormPosition">
                <div id="Formulaire">
<form id="contact" action="<?= $_SERVER["PHP_SELF"] ?>" method="post" enctype="application/x-www-form-urlencoded" name="form1">    
  <fieldset>                 
<label for="Nom">Votre Prénom et Nom *</label>
<input id="Nom" name="Nom" type="text" value=""/>
<label for="Email">Votre 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="JavaScript: new_captcha();"  style="color: #D9E9DE; font-family:'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif
">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  style="color: #D9E9DE; font-family:'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif; font-size: 10px; text-align: center">
<?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 if (isset($_POST['Nom']) && empty($_POST['Nom'])){
echo $error='- N\'oubliez pas votre pr&#233;nom et votre nom<br/>';
}
 
if(isset($_POST['Email']) && !empty($_POST['Email'])){
$Email=$_POST['Email'];$error=NULL;$Email=htmlentities($Email);
//filtrage
$Email=PetitClean($Email,60);
if(VerifierAdresseMail($Email)){
//echo 'mail ok';
}else{
echo $error='- Il y a une erreur dans votre adresse e-mail<br/>';exit;
}
}else if(isset($_POST['Email']) && empty($_POST['Email'])){
echo $error='- N\'oubliez pas votre adresse mail<br/>';
}
 
if(isset($_POST['Message']) && !empty($_POST['Message'])){
$Message=$_POST['Message'];$error=NULL;
//filtrage
$Message=PetitClean($Message,300);
}else if(isset($_POST['Message']) && empty($_POST['Message'])){
echo $error='- N\'oubliez pas votre message<br/>';
}
if($_SERVER['REQUEST_METHOD']==='POST'){ 
if(isset($_POST['code']) && !empty($_POST['code']) && $_POST['code']===$_SESSION['verif']){ 
 
$destinataire="contact@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 vient &#234;tre envoy&#233;<br/>!';
 
}else{
/*petite secu*/
$Message=NULL;
$Email=NULL;
$Nom=NULL;
 
$_POST=NULL;
$_SESSION['verif']=NULL; 
$destinataire=NULL;
echo '- Votre message n\'a pas &#233;t&#233; envoy&#233;<br/>';
}
 
$Message=NULL;
$Email=NULL;
$Nom=NULL;
 
$_POST=NULL;
$destinataire=NULL;
 
} else {
echo $error='- N\'oubliez pas le code de s&#233;curit&#233;<br/>';
}
}
?>
</div>
<!------------------Fin de la séparation du formulaire pour intégrer le php---------------->
 
 
                   </form>
                </div>
                <div id="contactLink"></div>
            </div>
Merci pour ton aide
BRUNO71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 22h50   #4
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
t'as du oublié de mettre session_start() tout au debut de ton script, l'erreur concerne $_SESSION['verif']
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 08h10   #5
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Citation:
Envoyé par vorace Voir le message
t'as du oublié de mettre session_start() tout au debut de ton script, l'erreur concerne $_SESSION['verif']
Cela vient surtout du fait que ton code ne vérifie pas que l'index existe... Ce serait un tableau autre qu'un tableau de session il y aurait le même problème. => isSet()
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 20h59   #6
Membre habitué
 
Avatar de BRUNO71
 
Homme Bruno Langlois
Conseiller technique ELec
Inscription : janvier 2007
Messages : 289
Détails du profil
Informations personnelles :
Nom : Homme Bruno Langlois
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Conseiller technique ELec
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 289
Points : 123
Points : 123
Bonsoir,

Je rencontre des petits soucis dont voici les messages d'erreur.

Si suppression de session_start() alors le message est le suivant :

Notice : Undefined index : verif in /home/www/bresseweb/www/index.php on line 270

Voici la ligne 270 :

Code :
1
2
3
 
 
 if(isset($_POST['code']) && !empty($_POST['code']) && $_POST['code']===$_SESSION['verif']){
Si je remet session_start() alors le message est le suivant :

Ignoring session_start() in /home/www/bresseweb/www/index.php on line 217

Voici la ligne 217 :

Code :
1
2
3
 
 
session_start();
BRUNO71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 21h11   #7
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
tu dois mettre session_start() tout au début de ton script, à la première ligne.
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 21h40   #8
Membre habitué
 
Avatar de BRUNO71
 
Homme Bruno Langlois
Conseiller technique ELec
Inscription : janvier 2007
Messages : 289
Détails du profil
Informations personnelles :
Nom : Homme Bruno Langlois
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Conseiller technique ELec
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 289
Points : 123
Points : 123
Bonsoir,

Il ce trouve juste après
<?php
session start()
etc
etc
?>

Que faire
BRUNO71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 21h56   #9
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
mes d'abord ça, tout au début :
Code :
1
2
3
4
if(!isset($_SESSION))
{
session_start();
}
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 00h25   #10
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Citation:
Envoyé par vorace Voir le message
mes d'abord ça, tout au début :
Code :
1
2
3
4
if(!isset($_SESSION))
{
session_start();
}
C'est pas faux mais si aucune session n'est démarrée et que l'on trouve par exemple $_SESSION['a'] = 'b'; avant dans le code, la session ne sera pas démarrée. On peut utiliser if (!session_id()) session_start(); pour éviter ce cas de figure.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 17h46   #11
Membre habitué
 
Avatar de BRUNO71
 
Homme Bruno Langlois
Conseiller technique ELec
Inscription : janvier 2007
Messages : 289
Détails du profil
Informations personnelles :
Nom : Homme Bruno Langlois
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Conseiller technique ELec
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 289
Points : 123
Points : 123
Bonjour à vous,

Je viens d'essayer avec :

Code :
1
2
3
4
5
6
 
 
if(!isset($_SESSION))
{
session_start();
}
et puis :


Code :
1
2
3
 
 
if (!session_id()) session_start();

Résutat : Notice undefined index: verif ligne 271 ce qui correspond à :

Code :
1
2
3
 
 
if(isset($_POST['code']) && !empty($_POST['code']) && $_POST['code']===$_SESSION['verif']){
Alors le mail n'est pas envoyé, peut-être est-ce la faute du contrôle du captcha !!!
Qui correspond au code de sécurité ?

Merci
BRUNO71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 17h55   #12
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Sans doute que $_SESSION['verif'] n'a pas été définie auparavant ....
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 20h53   #13
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
transgohan n'avait pas tord :
Code :
1
2
 
if(isset($_POST['code']) && !empty($_POST['code']) && isset($_SESSION['verif']) && $_POST['code']===$_SESSION['verif']){
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 22h30   #14
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Citation:
Envoyé par BRUNO71 Voir le message
Code :
1
2
 
if(isset($_POST['code']) && !empty($_POST['code']) ...
A propos de ta ligne de code, un isset($_POST['code']) suivi d'un !empty($_POST['code']) est redondant puisque !empty est plus exigeant que isset et que ces deux "fonctions" vérifient toutes les deux l'existence de la variable. Donc pour le même résultat tu peux écrire :
Code :
1
2
 
if(!empty($_POST['code']) && isset($_SESSION['verif']) && $_POST['code']===$_SESSION['verif']){
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 22h58   #15
Membre habitué
 
Avatar de BRUNO71
 
Homme Bruno Langlois
Conseiller technique ELec
Inscription : janvier 2007
Messages : 289
Détails du profil
Informations personnelles :
Nom : Homme Bruno Langlois
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Conseiller technique ELec
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 289
Points : 123
Points : 123
Bonsoir,

Avant toutes choses, merci à vous pour votre aide...

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
 
 
<?php
 
if (!session_id()) session_start();
	$_SESSION['verif'] = '';
 
function VerifierAdresseMail($Email)
{
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
if(preg_match($Syntaxe,$Email))
{
return true;
}
else
{
return false;
}
}
function PetitClean($var,$lg){
$var=strip_tags($var);
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 if (isset($_POST['Nom']) && empty($_POST['Nom'])){
echo $error='- N\'oubliez pas votre pr&#233;nom et votre nom<br/>';
}
 
if(isset($_POST['Email']) && !empty($_POST['Email']))
{
$Email=$_POST['Email'];$error=NULL;$Email=htmlentities($Email);
//filtrage
$Email=PetitClean($Email,60);
if(VerifierAdresseMail($Email))
{
//echo 'mail ok';
}
else
{
echo $error='- Il y a une erreur dans votre adresse e-mail<br/>';
}
}
else if(isset($_POST['Email']) && empty($_POST['Email']))
{
echo $error='- N\'oubliez pas votre adresse mail<br/>';
}
 
if(isset($_POST['Message']) && !empty($_POST['Message']))
{
$Message=$_POST['Message'];$error=NULL;
//filtrage
$Message=PetitClean($Message,300);
}
else if(isset($_POST['Message']) && empty($_POST['Message']))
{
echo $error='- N\'oubliez pas votre message<br/>';
}
if($_SERVER['REQUEST_METHOD']==='POST')
{ 
 
 if(!empty($_POST['code']) && isset($_SESSION['verif']) && $_POST['code']===$_SESSION['verif']){ 
$destinataire="mail@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 vient &#234;tre envoy&#233;<br/>!';
 
}
else
{
/*petite secu*/
$Message=NULL;
$Email=NULL;
$Nom=NULL;
 
$_POST=NULL;
$_SESSION['verif']=NULL; 
$destinataire=NULL;
echo '- Votre message n\'a pas &#233;t&#233; envoy&#233;<br/>';
}
 
 
$Message=NULL;
$Email=NULL;
$Nom=NULL;
 
$_POST=NULL;
$destinataire=NULL;
 
}
 
 else 
{
echo $error='- N\'oubliez pas le code de s&#233;curit&#233;<br/>';
}
 
}
?>
En écrivant le code tel quel, je n'ai plus d'erreur....
Sauf que le message ne part pas avec l'adresse mail et que le message suivant apparait (n'oubliez pas le code de sécurité) alors qu'il est noté...

BRUNO71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 23h18   #16
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
le problème c'est cette ligne :
Code :
1
2
if (!session_id()) session_start();
	$_SESSION['verif'] = '';
tu vides $_SESSION['verif'] de cette manière donc forcement ce sera pas égal à $_POST['code'].
enlève
Code :
$_SESSION['verif'] = '';
ce qui donne :
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
<?php	
if(!session_id()) session_start();
 
function VerifierAdresseMail($Email)
{
	$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
	if(preg_match($Syntaxe,$Email))
	{
	return true;
	}
	else
	{
	return false;
	}
}
function PetitClean($var,$lg){
	$var=strip_tags($var);
	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 if (isset($_POST['Nom']) && empty($_POST['Nom'])){
	echo $error='- N\'oubliez pas votre pr&#233;nom et votre nom<br/>';
}
 
if(isset($_POST['Email']) && !empty($_POST['Email']))
{
	$Email=$_POST['Email'];$error=NULL;$Email=htmlentities($Email);
	//filtrage
	$Email=PetitClean($Email,60);
	if(VerifierAdresseMail($Email))
	{
	//echo 'mail ok';
	}
	else
	{
	echo $error='- Il y a une erreur dans votre adresse e-mail<br/>';
	}
}
else if(isset($_POST['Email']) && empty($_POST['Email']))
{
	echo $error='- N\'oubliez pas votre adresse mail<br/>';
}
 
if(isset($_POST['Message']) && !empty($_POST['Message']))
{
	$Message=$_POST['Message'];$error=NULL;
	//filtrage
	$Message=PetitClean($Message,300);
}
else if(isset($_POST['Message']) && empty($_POST['Message']))
{
 
}
if($_SERVER['REQUEST_METHOD']==='POST')
{ 
 
	if(!empty($_POST['code']) && isset($_SESSION['verif']) && $_POST['code']===$_SESSION['verif']){ 
		$destinataire="mail@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))
		{
			echo '- Votre message vient &#234;tre envoy&#233;<br/>!';
		}
		else
		{
			echo '- Votre message n\'a pas &#233;t&#233; envoy&#233;<br/>';
		}
			/*petite secu*/
			$Message=NULL;
			$Email=NULL;
			$Nom=NULL;
			$_POST=NULL;
			$_SESSION['verif']=NULL; 
			$destinataire=NULL; 
	}
	else 
	{
		echo $error='- N\'oubliez pas le code de s&#233;curit&#233;<br/>';
	}
 
}
?>
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 19h49   #17
Membre habitué
 
Avatar de BRUNO71
 
Homme Bruno Langlois
Conseiller technique ELec
Inscription : janvier 2007
Messages : 289
Détails du profil
Informations personnelles :
Nom : Homme Bruno Langlois
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Conseiller technique ELec
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 289
Points : 123
Points : 123
Bonjour,

Merci à vous pour votre aide..
Ca fait plaisir de savoir qu'il y a des pros....
BRUNO71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h53.


 
 
 
 
Partenaires

Hébergement Web