Bonjour,
Je recherche de l'aide afin d'optimiser mon formulaire de contact.
Actuellement voici la configuration de ma base de données :
Voici le code de mon formulaire :Table "formulaire" : id_form nom objet texte mail mail_dest Table "destinataire" : Id_dest Nom mail_desti
J'ai créé un formulaire mais je n'arrive pas a y ajouter une liste déroulante permettant de sélectionner le destinataire.
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 <?php // Initalisation $validContact = 0; $MsgErrContact = ''; $defaut_nom = 'Nom'; $defaut_mail = 'Votre adresse mail'; $defaut_objet = 'Objet'; $defaut_texte = 'Texte'; $nom = $defaut_nom; $mail = $defaut_mail; $objet = $defaut_objet; $texte = $defaut_texte; // si le formulaire est post� if (isset($_POST['B1'])) { // ---------------------------------------------------- // R�cup�ration des valeurs des champs du formulaire // ---------------------------------------------------- $nom = (isset($_POST['nom']) && trim($_POST['nom'])!=$defaut_nom)? trim(stripslashes($_POST['nom'])) : $defaut_nom; $mail = (isset($_POST['mail']) && trim($_POST['mail'])!=$defaut_mail)? trim(stripslashes($_POST['mail'])) : $defaut_mail; $objet = (isset($_POST['objet']) && trim($_POST['nom'])!=$defaut_objet)? trim(stripslashes($_POST['objet'])) : $defaut_objet; $texte = (isset($_POST['texte']) && trim($_POST['nom'])!=$defaut_texte)? strip_tags(trim(stripslashes($_POST['texte']))) : $defaut_texte; // textarea + protection anti-xss // ---------------------------------------------------- // Gestion des erreurs // ---------------------------------------------------- // champs obligatoires $champ_obligatoire = array(); // Message if ($nom=='' || $nom==$defaut_nom) { $validContact = 2; $champ_obligatoire[] = 'Votre Nom'; } if ($mail=='' || $mail==$defaut_mail) { $validContact = 2; $champ_obligatoire[] = 'Votre adresse mail'; } if($validContact==2 && count($champ_obligatoire)>0) { $MsgErrContact .= 'Remplissez les champs obligatoires : '.implode(', ',$champ_obligatoire).'<br />'; } // ------------- // regex e-mail $regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i'; // On v�rifie que le format de l'e-mail est correct if ($mail!='' && $mail!='Votre adresse mail' && !preg_match($regex_mail, $mail)) { $MsgErrContact .= 'Adresse mail invalide (doit �tre de la forme : <a href="mailto:xxxx@xx.xx">xxxx@xx.xx</a>)'.'<br />'; $validContact = 2; } // ------------- // essai de connexion � la base de donnees if(!mysql_connect('mysql51-26.pro','sniazllbbd2','XXXXXXX')){ $MsgErrContact .= 'Connection � la base de donnees Impossible'.'<br />'; $validContact = 2; } // ------------- if ($validContact!=2) { $validContact = 1; } // ---------------------------------------------------- // PAS d'ERREUR : TRAITEMENT // ---------------------------------------------------- if($validContact == 1) { // ------------- // 1/ PROTECTION contre injection SQL AVANT insertion en bdd $bd_nom = mysql_real_escape_string($nom); $bd_mail = mysql_real_escape_string($mail); $bd_objet = mysql_real_escape_string($objet); $bd_texte = mysql_real_escape_string($texte); // ------------- // 2/ Enregistrement en base de donn�es mysql_select_db('sniazllbbd2'); $requete = "INSERT INTO formulaire SET nom='$bd_nom',objet='$bd_objet',texte='$bd_texte', mail='$bd_mail'" ; $resultat = mysql_query($requete); // ------------- // 3/ ENVOI d'un email a l'administrateur $message = date("d/m/Y H:m:s\n")."\n". " Nouveau contact :"."\n"; " Nom :".$nom."\n". " Adresse mail :".$mail."\n". " Objet :".$objet."\n". " Texte :".$texte; $entetes = "From: $mail\nReply-to: $mail\n". "MIME-Version: 1.0\r\n". "Content-type: text/plain; charset=utf-8\r\n"; // (format TEXTE) $sujet = "Contact site SNIA de la part de ".$nom; $webmaster = 'raphael.1@gmail.com'; mail($webmaster,$sujet,$message,$entetes); // ------------- } // fin traitement } // fin si le formulaire est post� ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Formulaire contact</title> <style type="text/css"> label { float:left; width:150px; text-align:right; margin-right:5px; } </style> </head> <body> <?php // Messages if($validContact==1) { // message OK ?> <p>Votre message a bien �t� envoy�</p> <?php } elseif($validContact==2) { // message ERREUR ?> <p><?php echo $MsgErrContact; ?></p> <?php } ?> <?php // Formulaire if($validContact!=1) { ?> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <p> <label for="idnom">Nom : </label> <input id="idnom" name="nom" type="text" size="30" value="<?php echo $nom; ?>" onfocus="if(this.value=='<?php echo $defaut_nom; ?>'){ this.value=''; }" onblur="if(this.value==''){ this.value='<?php echo $defaut_nom; ?>'; }"> </p> <p> <label for="idmail">Votre adresse mail : </label> <input id="idmail" name="mail" type="text" size="30" value="<?php echo $mail; ?>" onfocus="if(this.value=='<?php echo $defaut_mail; ?>'){ this.value=''; }" onblur="if(this.value==''){ this.value='<?php echo $defaut_mail; ?>'; }"> </p> <p> <label for="idobjet">Objet : </label> <input id="idobjet" name="objet" type="text" size="50" value="<?php echo $objet; ?>" onfocus="if(this.value=='<?php echo $defaut_objet; ?>'){ this.value=''; }" onblur="if(this.value==''){ this.value='<?php echo $defaut_objet; ?>'; }"> </p> <p> <label for="idtexte">Texte : </label> <textarea id="idtexte" name="texte" cols="40" rows="3" onfocus="if(this.value=='<?php echo $defaut_texte; ?>'){ this.value=''; }" onblur="if(this.value==''){ this.value='<?php echo $defaut_texte; ?>'; }"><?php echo $texte; ?></textarea> </p> <p> <label> </label> <input type="submit" value="Envoyer" name="B1"> </p> </form> <p> <?php } // fin formulaire ?> </p> <p> </p> </body> </html>
Je voudrais y ajouter une liste déroulante (la liste déroulante afficherait que le nom du destinataire et non sont adresse afin de diffuser celle-ci. Les infos sont issu de la table "destinataire") dans laquelle l'utilisateur sélectionnerez le nom du destinataire et quand il cliquerez sur le bouton "envoi" le serveur enverrait le mail issu du formulaire à l'adresse du destinataire sélectionné et une copie des informations saisie serait enregistrée dans la table "formulaire".
Quelqu'un pourrait il m'apporter son aide, un conseil, une remarque, une idée, … SVP Merci
Bonne fin de journée
Raphael
Partager