Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 10/04/2011, 18h33   #1
Invité régulier
 
Homme
Consultant en sécurité
Inscription : avril 2011
Messages : 47
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en sécurité
Secteur : Conseil

Informations forums :
Inscription : avril 2011
Messages : 47
Points : 6
Points : 6
Par défaut Problème envoi formulaire (syntaxe ?)

Bonjour,

j'ai réalisé un formulaire et je souhaiterai :

1. Que celui-ci, lorsqu'il est dument rempli et validé, me soit envoyé par e-mail (+ une copie à l'utilisateur à son adresse e-mail qu'il aura fourni dans le formulaire et dont je peux "adapter" la forme) ; cela est déjà dans le code, et ça ne fonctionne pas... Ainsi que, en en-tête (objet) du mail, je reçoive par exemple "Contact Website" et que dans le corps du message je reçoive, avec des retours chariot+br/, les informations qu'il aura précisé.

2. Que ça renvoie sur la page "process.php" comme souhaité (tout à l'heure ça marchait, et j'ai dû faire une connerie parce-que là ça marche plus, et je vois pas où est la boulette... ).

Je vous fournis le formulaire "contact.html" :

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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
   <head>
       <title>Contact</title>
       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
              <style type="text/css">
body
 
{
   width: 100%;
   margin: auto;
   margin-top: 2%;
   margin-bottom: 2%;
   background-attachment:fixed;
}
 
 
h1
{
 
   padding-left: 30px;
   padding-right: 30px;
   color: white;
   text-align: center;
   text-decoration: underline;
}
 
fieldset
{
color: #00CCFF;	
border-color: #00CCFF;
}
 
#contact_direct p
{
	font-color: black;
	margin-top: 0%;	
}
 
#contact_via_website
{
	font-color: black;
}
 
 
 
   #corpus
 
{
   margin-left: 10%; 
   margin-right: 10%;
   margin-bottom: 3%; 
   padding-top: 20px; 
   padding-left: 20px;
   padding-right: 20px;
   padding-bottom: 20px;
   color: White;
   background-color: #626262;
   background-repeat: repeat-x; 
   border: 2px solid black;
}
 
.font
 
{
font-family: "Trebuchet", Arial, Verdana, serif;
font-size: 0.75em;
color: black;
}
 
input, textarea, select
 
{
    -moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	-khtml-border-radius: 5px;
	border-radius: 5px;
	behavior: url("border-radius.htc");	
	border-color: #00CCFF;
}
 
 
.ui-button 
{ margin-left: -1px; }
 
.ui-button-icon-only 
 
{ }
 
.ui-button-text 
{ padding: 0.35em; } 
 
.ui-autocomplete-input 
{ margin: 0; padding: 0.48em 0 0.47em 0.45em; }
 
 
   </style>
 
   </head>
 
   <body>
<div id="corpus">     
 <div id="contact_via_website">
 <form method="post" action="process.php">
 <fieldset>
       <legend>Contact me via my website</legend>
    <p>
       <label for="civility" name="civility" class="font" tabindex="1">Civility</label><br />
       <select name="civility" id="civility">
           <option value=""></option>
           <option value="Mr.">Mr.</option>
           <option value="Ms.">Ms.</option>
           <option value="Mrs.">Mrs.</option>
       </select>
    </p>
    <p> 
       <label for="last_name" name="last_name" class="font" tabindex="2">Last name</label><br />
       <input type="text" name="last_name" />
       <br /></p>
     <p>
       <label for="first_name" name="first_name" class="font" tabindex="3">First name</label><br />
       <input type="text" name="first_name" />
       <br /></p>
     <p>
       <label for="country" name="country" class="font">Country</label><br />
       <select name="country">
       <option selected>Select your country</option>
            <optgroup label="Africa">
               <option value="Algeria">Algeria</option>
               <option value="Angola">Angola</option>
               <option value="Benin">Benin</option>
               <option value="Botswana">Botswana</option>
               <option value="Burkina Faso">Burkina Faso</option>
               <option value="Cameroon">Cameroon</option>
               <option value="Cape Verde">Cape Verde</option>
               <option value="Central African Republic">Central African Republic</option>
               <option value="Chad">Chad</option>
               <option value="Comoros">Comoros</option>
               <option value="Congo (Brazzaville)">Congo (Brazzaville)</option>
               <option value="Congo (Democratic Republic of the)">Congo (Democratic Republic of the)</option>
               <option value="Djibouti">Djibouti</option>
               <option value="Egypt">Egypt</option>
               <option value="Equatorial Guinea">Equatorial Guinea</option>
               <option value="Eritrea">Eritrea</option>
               <option value="Ethiopia">Ethiopia</option>
               <option value="Gabon">Gabon</option>
               <option value="Gambia">Gambia</option>
               <option value="Ghana">Ghana</option>
               <option value="Guinea">Guinea</option>
               <option value="Ivory Coast">Ivory Coast</option>
               <option value="Kenya">Kenya</option>
               <option value="Lesotho">Lesotho</option>
               <option value="Liberia">Liberia</option>
               <option value="Libyan Arab Jamahiriya">Libyan Arab Jamahiriya</option>
               <option value="Madagascar">Madagascar</option>
               <option value="Malawi">Malawi</option>
               <option value="Mali">Mali</option>
               <option value="Mauritania">Mauritania</option>
               <option value="Mauritius">Mauritius</option>
               <option value="Mayotte">Mayotte</option>
               <option value="Morroco">Morroco</option>
               <option value="Mozambique">Mozambique</option>
               <option value="Namibia">Namibia</option>
               <option value="Niger">Niger</option>
               <option value="Nigeria">Nigeria</option>
               <option value="Reunion">Reunion</option>
               <option value="Rwanda">Rwanda</option>
               <option value="Saint Helena">Saint Helena</option>
               <option value="Sao Tome and Principe">Sao Tome and Principe</option>
               <option value="Senegal">Senegal</option>
               <option value="Seychelles">Seychelles</option>
               <option value="Sierra Leone">Sierra Leone</option>
               <option value="Somalia">Somalia</option>
               <option value="South Africa">South Africa</option>
               <option value="Sudan">Sudan</option>
               <option value="Swaziland">Swaziland</option>
               <option value="Tanzania (United Republic of)">Tanzania (United Republic of)</option>
               <option value="Togo">Togo</option>
               <option value="Tunisia">Tunisia</option>
               <option value="Uganda">Uganda</option>
               <option value="Western Sahara">Western Sahara</option>
               <option value="Zambia">Zambia</option>
            </optgroup>    
            <optgroup label="America">
               <option value="Anguilla">Anguilla</option>
               <option value="Antigua and Barbuda">Antigua and Barbuda</option>
               <option value="Argentina">Argentina</option>
               <option value="Aruba">Aruba</option>
               <option value="Bahamas">Bahamas</option>
               <option value="Barbados">Barbados</option>
               <option value="Belize">Belize</option>
               <option value="Bermuda">Bermuda</option>
               <option value="Bolivia">Bolivia</option>
               <option value="Brazil">Brazil</option>
               <option value="British Virgin Islands">British Virgin Islands</option>
               <option value="Canada">Canada</option>
               <option value="Cayman Islands">Cayman Islands</option>
               <option value="Chile">Chile</option>
               <option value="Colombia">Colombia</option>
               <option value="Costa Rica">Costa Rica</option>
               <option value="Cuba">Cuba</option>
               <option value="Dominica">Dominica</option>
               <option value="Dominican Republic">Dominican Republic</option>
               <option value="Ecuador">Ecuador</option>
               <option value="Folkland Islands (Malvinas)">Folkland Islands (Malvinas)</option>
               <option value="French Guiana">French Guiana</option>
               <option value="Greenland">Greenland</option>
               <option value="Grenada">Grenada</option>
               <option value="Guadeloupe">Guadeloupe</option>
               <option value="Guatemala">Guatemala</option>
               <option value="Guyana">Guyana</option>
               <option value="Haiti">Haiti</option>
               <option value="Honduras">Honduras</option>
               <option value="Jamaica">Jamaica</option>
               <option value="Martinique">Martinique</option>
               <option value="Mexico">Mexico</option>
               <option value="Monserrat">Monserrat</option>
               <option value="Netherlands Antilles">Netherlands Antilles</option>
               <option value="Nicaragua">Nicaragua</option>
               <option value="Panama">Panama</option>
               <option value="Paraguay">Paraguay</option>
               <option value="Peru">Peru</option>
               <option value="Puerto Rico">Puerto Rico</option>
               <option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
               <option value="Saint Lucia">Saint Lucia</option>
               <option value="Saint Pierre and Miquelon">Saint Pierre and Miquelon</option>
               <option value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option>
               <option value="Salvadore">Salvadore</option>
               <option value="Suriname">Suriname</option>
               <option value="Trinidad and Tobago">Trinidad and Tobago</option>
               <option value="Turks and Caicos Islands">Turks and Caicos Islands</option>
               <option value="United States of America">United States of America</option>
               <option value="Uruguay">Uruguay</option>
               <option value="Venezuela">Venezuela</option>
               <option value="Virgin Islands">Virgin Islands</option>
           </optgroup>
           <optgroup label="Asia Pacific">
               <option value="Afghanistan">Afghanistan</option>
               <option value="Bangladesh">Bangladesh</option>
               <option value="Bhutan">Bhutan</option>
               <option value="Brunei">Brunei</option>
               <option value="Cambodia">Cambodia</option>
               <option value="China">China</option>
               <option value="Georgia">Georgia</option>
               <option value="India">India</option>
               <option value="Indonesia">Indonesia</option>
               <option value="Japan">Japan</option>
               <option value="Kazakhstan">Kazakhstan</option>
               <option value="Kuwait">Kuwait</option>
               <option value="Kyrgyzstan">Kyrgyzstan</option>
               <option value="Laos">Laos</option>
               <option value="Malaysia">Malaysia</option>
               <option value="Maldives">Maldives</option>
               <option value="Mongolia">Mongolia</option>
               <option value="Myanmar">Myanmar</option>
               <option value="Nepal">Nepal</option>
               <option value="North Korea">North Korea</option>
               <option value="Pakistan">Pakistan</option>
               <option value="Papua New Guinea">Papua New Guinea</option>
               <option value="Philippines">Philippines</option>
               <option value="Singapore">Singapore</option>
               <option value="South Korea">South Korea</option>
               <option value="Sri Lanka">Sri Lanka</option>
               <option value="Taiwan">Taiwan</option>
               <option value="Tajikistan">Tajikistan</option>
               <option value="Thailand">Thailand</option>
               <option value="Turkmenistan">Turkmenistan</option>
               <option value="Uzbekistan">Uzbekistan</option> 
               <option value="Vietnam">Vietnam</option>              
           </optgroup>
           <optgroup label="Europe">
			   <option value="Albania">Albania</option>
			   <option value="Andorra">Andorra</option>
			   <option value="Austria">Austria</option>
			   <option value="Belarus">Belarus</option>
			   <option value="Belgium">Belgium</option>
			   <option value="Bosnia-Herzegovina">Bosnia Herzegovina</option>
			   <option value="Bulgaria">Bulgaria</option>
			   <option value="Czech. Repuplic">Czech. Republic</option>
			   <option value="Croatia">Croatia</option>
			   <option value="Denmark">Denmark</option>
			   <option value="Estonia">Estonia</option>
			   <option value="Finland">Finland</option>
			   <option value="France">France</option>
			   <option value="Germany">Germany</option>
		       <option value="Gibraltar">Gibraltar</option>
			   <option value="Greece">Greece</option>
			   <option value="Hungary">Hungary</option>
			   <option value="Ireland">Ireland</option>
			   <option value="Iceland">Iceland</option>
			   <option value="Italy">Italy</option>
			   <option value="Latvia">Latvia</option>
			   <option value="Liechtenstein">Liechtenstein</option>
			   <option value="Lithuania">Lithuania</option>
			   <option value="Luxembourg">Luxembourg</option>
			   <option value="Macedonia">Macedonia</option>
			   <option value="Malta">Malta</option>
			   <option value="Moldova">Moldova</option>
			   <option value="Monaco">Monaco</option>
			   <option value="Norway">Norway</option>
			   <option value="Netherlands">Netherlands</option>
			   <option value="Poland">Poland</option>
			   <option value="Portugal">Portugal</option>
			   <option value="Romania">Romania</option>
			   <option value="Russian Federation">Russian Federation</option>
			   <option value="San Marino">San Marino</option>
			   <option value="Slovakia">Slovakia</option>
			   <option value="Slovenia">Slovenia</option>
			   <option value="Spain">Spain</option>
			   <option value="Sweden">Sweden</option>
			   <option value="Switzerland">Switzerland</option>
			   <option value="Turkey">Turkey</option>
			   <option value="United Kingdom">United Kingdom</option>
			   <option value="Ukraine">Ukraine</option>
			   <option value="Vatican">Vatican</option>
			   <option value="Yugoslavia">Yugoslavia</option>
           </optgroup> 
           <optgroup label="Middle East">
               <option value="Bahrain">Bahrain</option>
               <option value="Iraq">Iraq</option>
               <option value="Iran">Iran</option>
               <option value="Israel">Israel</option>
               <option value="Jordania">Jordania</option>
               <option value="Kuwait">Kuwait</option>
               <option value="Lebanon">Lebanon</option>
               <option value="Oman">Oman</option>
               <option value="Palestine">Palestine</option>
               <option value="Qatar">Qatar</option>
               <option value="Saudi Arabia">Saudi Arabia</option>
               <option value="Syria">Syria</option>
               <option value="United Arab Emirates">United Arab Emirates</option>
               <option value="Yemen">Yemen</option>
           </optgroup>   
           <optgroup label="Oceania">
               <option value="Australia">Australia</option>
               <option value="Fiji">Fiji</option>
               <option value="French Polynesia">French Polynesia</option>
               <option value="Guam">Guam</option>
               <option value="Kiribati">Kiribati</option>
               <option value="Marshall Islands">Marshall Islands</option>
               <option value="Micronesia">Micronesia</option>
               <option value="New Caledonia">New Caledonia</option>
               <option value="New Zealand">New Zealand</option>
               <option value="Papua New Guinea">Papua New Guinea</option>
               <option value="Samoa">Samoa</option>
               <option value="Samoa (US)">Samoa (US)</option>
               <option value="Solomon (Islands)">Solomon (Islands)</option>
               <option value="Tonga">Tonga</option>
               <option value="Vanuatu">Vanuatu</option>
           </optgroup>
       </select>
   </p>
     <p>
       <label for="City" name="city" class="font" tabindex="4">City</label><br />
       <input type="text" name="first name" />
       <br /></p>
     <p>
       <label for="company" name="company" class="font" tabindex="5">Company</label><br />
       <input type="text" name="Company" />
       <br /></p>
     <p>  
       <label for="e_mail" name="e_mail" class="font" tabindex="6">E-mail</label><br />
       <input type="text" name="e_mail" />
       <br /></p>
     <p> 
       <label for="phone" name="phone_company" class="font" tabindex="7">Phone (company)</label><br />
       <input type="text" name="phone_company" />
       <br /></p>
     <p> 
       <label for="phone" name="phone_cellular" class="font" tabindex="8">Phone (cellular)</label><br />
       <input type="text" name="phone_cellular" />
       <br /></p>
     <p> 
       <label for="message" name="message" class="font" tabindex="9">Your message</label><br />
       <textarea name="message" rows="20" cols="100"></textarea>       
       </p>
       <p>
       <input type="submit" value="submit" name="submit" tabindex="10" /> 
     </p>
   </fieldset>
</form>
</div>
<form method="post">    
 <fieldset>
       <legend>Contact me directly</legend>
 <div id="contact_direct" class="font" name="contact_direct"><br />
    <p><b><u>Postal adress :</u></b></p>      
    <p>XXXXX XXXXX</p>
    <p>XXXXXXXXXXXXXXXXr</p>
    <p>XXXXX XXXXXXX</p><br />
    <p><b><u>Phone number :</u></b></p>
    <p>XXXXXXXXXX</p><br />
    <p><b><u>E-mail adress :</u></b></p>
    <p><u>contact@xxxxx.com</u></p><br />  
    </div>
       </fieldset>
       </form> 
     </div>
   </body>
</html>
Et la page de traitement de données "process.php" :

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
<?php
 
	// destinataire est mon adresse mail. Pour envoyer à plusieurs à la fois, je peux séparer par des virgules
	$destinataire = 'XXXXX@gmail.com';  // il y a une redirec° de "contact@xxxx.com à celle là, normalement ca devrait marcher 
 
	// copie ? (envoie une copie au visiteur)
	$copie = 'oui';   // notez que c est bien OUI !
 
	// Action du formulaire (si ma page avait des paramètres dans l'URL)
	// si cette page etait index.php?page=contact alors j'aurai du mettre index.php?page=contact
	// sinon on laisse vide
	$form_action = '';
 
	// Messages de confirmation du mail
	$message_envoye = "Your message has succesfully been sent to XXXXXX XXXXXX";
	$message_non_envoye = "An error occurred. Please, try again.";
 
	// Message d'erreur du formulaire
	$message_formulaire_invalide = "An error occured. You forgot to specify one or several fields. Please, try again.";
 
 
	// cette fonction sert à nettoyer et enregistrer un texte
 
	function Rec($text)
	{
		$text = trim($text); // delete white spaces after & before text
		if (1 === get_magic_quotes_gpc())
		{
			$stripslashes = create_function('$txt', 'return stripslashes($txt);');
		}
		else
		{
			$stripslashes = create_function('$txt', 'return $txt;');
		}
 
		// magic quotes ?
		$text = $stripslashes($text);
		$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
		$text = nl2br($text);
		return $text;
	};
 
	/*
	 * Cette fonction sert à vérifier la syntaxe d'un email
	 */
	function IsEmail($email)
	{
		$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
		return (eregi($pattern,$email)) ? true : false;
	};
 
	$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
 
	// si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
	$civility = (isset($_POST['civility'])) ? Rec($_POST['civility']) : '';
	$last_name = (isset($_POST['last_name'])) ? Rec($_POST['last_name']) : '';
	$first_name = (isset($_POST['first_name'])) ? Rec($_POST['first_name']) : ''; 
	$country = (isset($_POST['country'])) ? Rec($_POST['country']) : '';
	$city = (isset($_POST['city'])) ? Rec($_POST['city']) : '';
	$company = (isset($_POST['company'])) ? Rec($_POST['company']) : '';
	$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
	$phone_company = (isset($_POST['phone_company'])) ? Rec($_POST['phone_company']) : '';
	$phone_cellular = (isset($_POST['phone_cellular'])) ? Rec($_POST['phone_cellular']) : '';
	$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
 
	if (isset($_POST['envoi']))    // je crois que c'est ici que j'ai chié dans la colle..........
	{
		// On vérifie les variables et l'email ...
		$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
		$err_formulaire = (IsEmail($email)) ? false : true;
 
		if (($civility != '') && ($last_name != '') && ($first_name != '')  && ($country != '')  && ($city != '') && ($company != '') && ($email != '') && ($phone_company != '') && ($phone_cellular != '') && ($message != ''))
		{
			// les variables sont remplies, on génère puis envoie le mail
			$headers = 'From: '.$last_name .$first_name.' <'.$email.'>' . "\r\n";
 
			// envoyer une copie au visiteur ?
			if ($copie == 'oui')
			{
				$cible = $destinataire.','.$email;
			}
			else
			{
				$cible = $destinataire;
			};
 
			// Remplacement de certains caractères spéciaux
			$message = html_entity_decode($message);
			$message = str_replace('&#039;',"'",$message);
			$message = str_replace('&#8217;',"'",$message);
			$message = str_replace('<br>','',$message);
			$message = str_replace('<br />','',$message);
 
			// Envoi du mail
			if (mail($cible, $civility, $last_name, $first_name, $country, $city, $company, $company, $e_mail, $phone_company, $phone_cellular, $message, $headers))
			{
				echo '<p>'.$message_envoye.'</p>'."\n";
			}
			else
			{
				echo '<p>'.$message_non_envoye.'</p>'."\n";
			};
		}
		else
		{
			// une des variables (ou plus) est vide ...
			echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n"; 
			$err_formulaire = true;
		};
	}; // fin du if (!isset($_POST['envoi']))
 
 
?>
Je crois que j'suis vraiment pas loin... mais... ça ne fonctionne pas...
templari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2011, 23h36   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Pourrais-tu être plus précis que "ça ne fonctionne pas" ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 10h39   #3
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Code :
1
2
3
4
5
if (isset($_POST['envoi']))    // je crois que c'est ici que j'ai chié dans la colle..........
	{
		// On vérifie les variables et l'email ...
		$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
		$err_formulaire = (IsEmail($email)) ? false : true;
Effectivement, dans ton code, il n'y a pas de champs avec et donc renverra toujours . Par contre, tu as un bouton submit avec ...

Par ailleurs,
Code :
$err_formulaire = (IsEmail($email)) ? false : true;
pourrait être écrit :
Code :
$err_formulaire = !IsEmail($email);
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 12h11   #4
Invité régulier
 
Homme
Consultant en sécurité
Inscription : avril 2011
Messages : 47
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en sécurité
Secteur : Conseil

Informations forums :
Inscription : avril 2011
Messages : 47
Points : 6
Points : 6
Citation:
Envoyé par sabotage Voir le message
Pourrais-tu être plus précis que "ça ne fonctionne pas" ?
Eh bien la page n'affiche RIEN. Et le mail ne s'envoie pas. En gros, rien ne fonctionne (mais je pense que je ne suis pas trop trop loin d'y arriver). Mais là je bloque, j vois pas où ça cloche...

@shikiryu : pourrais-tu me proposer des changements dans le code ? Où dois-je mettre le name=envoi ? Par contre, pour ta dernière proposition, je ne saisis pas, normalement, ça devrait fonctionner comme cela, et pourtant non...
templari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 17h42   #5
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Soit tu changes dans ton HTML
Code :
<input type="submit" value="submit" name="submit" tabindex="10" />
en
Code :
<input type="submit" value="submit" name="envoi" tabindex="10" />
Soit tu changes dans ton PHP
Code :
if (isset($_POST['envoi']))
en
Code :
if (isset($_POST['submit']))
Mais clairement, ce sont les bases de PHP...
Il y a pleins de tutoriaux là dessus sur developpez.
Exemple : http://sylvie-vauthier.developpez.co...ulaires#LIII-1

La dernière remarque de mon message précédent fait exactement la même chose que ton script, je le trouve juste plus lisible qu'une condition ternaire.
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 12h42   #6
Invité régulier
 
Homme
Consultant en sécurité
Inscription : avril 2011
Messages : 47
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en sécurité
Secteur : Conseil

Informations forums :
Inscription : avril 2011
Messages : 47
Points : 6
Points : 6
Bonjour,

J'ai bien fait ce changement (dans le HTML), mais désormais cela me met automatiquement le message contenu dans la variable "$message_formulaire_invalide", à savoir "An error occured. You forgot to specify one or several fields. Please, try again."

Comme si je n'avais pas rempli tous les champs

Alors que si.

templari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 13h58   #7
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
C'est le cas !

Lis ton code (et les tutoriaux de base dont j'ai donné les liens !)
process.php va recevoir en POST ( <form method="post" action="process.php"> ) tous les champs du formulaire présent dans la variable global $_POST qui est un tableau indexé sur les "name" des champs.

Tu remarqueras que :
Code :
1
2
<label for="City" name="city" class="font" tabindex="4">City</label><br />
<input type="text" name="first name" />
Le champ pour "city" a un name="first name". D'une part, tu ne peux pas avoir 2 mots dans name. D'autre part, cela implique que $_POST['city'] n'existe pas dans process.php (vu que name="city" n'existe pas dans le formulaire)

Code :
1
2
<label for="company" name="company" class="font" tabindex="5">Company</label><br />
<input type="text" name="Company" />
name est sensible à la casse. Company devrait être company

Code :
1
2
<label for="e_mail" name="e_mail" class="font" tabindex="6">E-mail</label><br />
<input type="text" name="e_mail" />
Tu utilises "e_mail" dans ton formulaire mais $_POST['email'] dans ton process.php il ne le trouve pas => champ vide.

N'utilise pas d'attribut "name" sur les labels !
Fais attention à tout ça. N'hésite pas à débugguer par toi-même (c'est comme ça qu'on apprend) par exemple en utilisant
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 14h36   #8
Invité régulier
 
Homme
Consultant en sécurité
Inscription : avril 2011
Messages : 47
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en sécurité
Secteur : Conseil

Informations forums :
Inscription : avril 2011
Messages : 47
Points : 6
Points : 6
HTML :

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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
   <head>
       <title>Contact</title>
       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
              <style type="text/css">
body
 
{
   width: 100%;
   margin: auto;
   margin-top: 2%;
   margin-bottom: 2%;
   background-attachment:fixed;
}
 
 
h1
{
 
   padding-left: 30px;
   padding-right: 30px;
   color: white;
   text-align: center;
   text-decoration: underline;
}
 
fieldset
{
color: #00CCFF;	
border-color: #00CCFF;
}
 
#contact_direct p
{
	font-color: black;
	margin-top: 0%;	
}
 
#contact_via_website
{
	font-color: black;
}
 
 
 
   #corpus
 
{
   margin-left: 10%; 
   margin-right: 10%;
   margin-bottom: 3%; 
   padding-top: 20px; 
   padding-left: 20px;
   padding-right: 20px;
   padding-bottom: 20px;
   color: White;
   background-color: #626262;
   background-repeat: repeat-x; 
   border: 2px solid black;
}
 
.font
 
{
font-family: "Trebuchet", Arial, Verdana, serif;
font-size: 0.75em;
color: black;
}
 
input, textarea, select
 
{
    -moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	-khtml-border-radius: 5px;
	border-radius: 5px;
	behavior: url("border-radius.htc");	
	border-color: #00CCFF;
}
 
 
.ui-button 
{ margin-left: -1px; }
 
.ui-button-icon-only 
 
{ }
 
.ui-button-text 
{ padding: 0.35em; } 
 
.ui-autocomplete-input 
{ margin: 0; padding: 0.48em 0 0.47em 0.45em; }
 
 
   </style>
 
   </head>
 
   <body>
<div id="corpus">     
 <div id="contact_via_website">
 <form method="post" action="process.php">
 <fieldset>
       <legend>Contact me via my website</legend>
    <p>
       <label for="civility" class="font" tabindex="1">Civility</label><br />
       <select name="civility" id="civility">
           <option value=""></option>
           <option value="Mr.">Mr.</option>
           <option value="Ms.">Ms.</option>
           <option value="Mrs.">Mrs.</option>
       </select>
    </p>
    <p> 
       <label for="last_name" class="font" tabindex="2">Last name</label><br />
       <input type="text" name="last_name" maxlength="40" />
       <br /></p>
     <p>
       <label for="first_name" class="font" tabindex="3">First name</label><br />
       <input type="text" name="first_name" maxlength="40" />
       <br /></p>
     <p>
       <label for="country" class="font" tabindex="4">Country</label><br />
       <select name="country">
       <option selected>Select your country</option>
            <optgroup label="Africa">
               <option value="Algeria">Algeria</option>
               <option value="Angola">Angola</option>
               <option value="Benin">Benin</option>
               <option value="Botswana">Botswana</option>
               <option value="Burkina Faso">Burkina Faso</option>
               <option value="Cameroon">Cameroon</option>
               <option value="Cape Verde">Cape Verde</option>
               <option value="Central African Republic">Central African Republic</option>
               <option value="Chad">Chad</option>
               <option value="Comoros">Comoros</option>
               <option value="Congo (Brazzaville)">Congo (Brazzaville)</option>
               <option value="Congo (Democratic Republic of the)">Congo (Democratic Republic of the)</option>
               <option value="Djibouti">Djibouti</option>
               <option value="Egypt">Egypt</option>
               <option value="Equatorial Guinea">Equatorial Guinea</option>
               <option value="Eritrea">Eritrea</option>
               <option value="Ethiopia">Ethiopia</option>
               <option value="Gabon">Gabon</option>
               <option value="Gambia">Gambia</option>
               <option value="Ghana">Ghana</option>
               <option value="Guinea">Guinea</option>
               <option value="Ivory Coast">Ivory Coast</option>
               <option value="Kenya">Kenya</option>
               <option value="Lesotho">Lesotho</option>
               <option value="Liberia">Liberia</option>
               <option value="Libyan Arab Jamahiriya">Libyan Arab Jamahiriya</option>
               <option value="Madagascar">Madagascar</option>
               <option value="Malawi">Malawi</option>
               <option value="Mali">Mali</option>
               <option value="Mauritania">Mauritania</option>
               <option value="Mauritius">Mauritius</option>
               <option value="Mayotte">Mayotte</option>
               <option value="Morroco">Morroco</option>
               <option value="Mozambique">Mozambique</option>
               <option value="Namibia">Namibia</option>
               <option value="Niger">Niger</option>
               <option value="Nigeria">Nigeria</option>
               <option value="Reunion">Reunion</option>
               <option value="Rwanda">Rwanda</option>
               <option value="Saint Helena">Saint Helena</option>
               <option value="Sao Tome and Principe">Sao Tome and Principe</option>
               <option value="Senegal">Senegal</option>
               <option value="Seychelles">Seychelles</option>
               <option value="Sierra Leone">Sierra Leone</option>
               <option value="Somalia">Somalia</option>
               <option value="South Africa">South Africa</option>
               <option value="Sudan">Sudan</option>
               <option value="Swaziland">Swaziland</option>
               <option value="Tanzania (United Republic of)">Tanzania (United Republic of)</option>
               <option value="Togo">Togo</option>
               <option value="Tunisia">Tunisia</option>
               <option value="Uganda">Uganda</option>
               <option value="Western Sahara">Western Sahara</option>
               <option value="Zambia">Zambia</option>
            </optgroup>    
            <optgroup label="America">
               <option value="Anguilla">Anguilla</option>
               <option value="Antigua and Barbuda">Antigua and Barbuda</option>
               <option value="Argentina">Argentina</option>
               <option value="Aruba">Aruba</option>
               <option value="Bahamas">Bahamas</option>
               <option value="Barbados">Barbados</option>
               <option value="Belize">Belize</option>
               <option value="Bermuda">Bermuda</option>
               <option value="Bolivia">Bolivia</option>
               <option value="Brazil">Brazil</option>
               <option value="British Virgin Islands">British Virgin Islands</option>
               <option value="Canada">Canada</option>
               <option value="Cayman Islands">Cayman Islands</option>
               <option value="Chile">Chile</option>
               <option value="Colombia">Colombia</option>
               <option value="Costa Rica">Costa Rica</option>
               <option value="Cuba">Cuba</option>
               <option value="Dominica">Dominica</option>
               <option value="Dominican Republic">Dominican Republic</option>
               <option value="Ecuador">Ecuador</option>
               <option value="Folkland Islands (Malvinas)">Folkland Islands (Malvinas)</option>
               <option value="French Guiana">French Guiana</option>
               <option value="Greenland">Greenland</option>
               <option value="Grenada">Grenada</option>
               <option value="Guadeloupe">Guadeloupe</option>
               <option value="Guatemala">Guatemala</option>
               <option value="Guyana">Guyana</option>
               <option value="Haiti">Haiti</option>
               <option value="Honduras">Honduras</option>
               <option value="Jamaica">Jamaica</option>
               <option value="Martinique">Martinique</option>
               <option value="Mexico">Mexico</option>
               <option value="Monserrat">Monserrat</option>
               <option value="Netherlands Antilles">Netherlands Antilles</option>
               <option value="Nicaragua">Nicaragua</option>
               <option value="Panama">Panama</option>
               <option value="Paraguay">Paraguay</option>
               <option value="Peru">Peru</option>
               <option value="Puerto Rico">Puerto Rico</option>
               <option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
               <option value="Saint Lucia">Saint Lucia</option>
               <option value="Saint Pierre and Miquelon">Saint Pierre and Miquelon</option>
               <option value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option>
               <option value="Salvadore">Salvadore</option>
               <option value="Suriname">Suriname</option>
               <option value="Trinidad and Tobago">Trinidad and Tobago</option>
               <option value="Turks and Caicos Islands">Turks and Caicos Islands</option>
               <option value="United States of America">United States of America</option>
               <option value="Uruguay">Uruguay</option>
               <option value="Venezuela">Venezuela</option>
               <option value="Virgin Islands">Virgin Islands</option>
           </optgroup>
           <optgroup label="Asia Pacific">
               <option value="Afghanistan">Afghanistan</option>
               <option value="Bangladesh">Bangladesh</option>
               <option value="Bhutan">Bhutan</option>
               <option value="Brunei">Brunei</option>
               <option value="Cambodia">Cambodia</option>
               <option value="China">China</option>
               <option value="Georgia">Georgia</option>
               <option value="India">India</option>
               <option value="Indonesia">Indonesia</option>
               <option value="Japan">Japan</option>
               <option value="Kazakhstan">Kazakhstan</option>
               <option value="Kuwait">Kuwait</option>
               <option value="Kyrgyzstan">Kyrgyzstan</option>
               <option value="Laos">Laos</option>
               <option value="Malaysia">Malaysia</option>
               <option value="Maldives">Maldives</option>
               <option value="Mongolia">Mongolia</option>
               <option value="Myanmar">Myanmar</option>
               <option value="Nepal">Nepal</option>
               <option value="North Korea">North Korea</option>
               <option value="Pakistan">Pakistan</option>
               <option value="Papua New Guinea">Papua New Guinea</option>
               <option value="Philippines">Philippines</option>
               <option value="Singapore">Singapore</option>
               <option value="South Korea">South Korea</option>
               <option value="Sri Lanka">Sri Lanka</option>
               <option value="Taiwan">Taiwan</option>
               <option value="Tajikistan">Tajikistan</option>
               <option value="Thailand">Thailand</option>
               <option value="Turkmenistan">Turkmenistan</option>
               <option value="Uzbekistan">Uzbekistan</option> 
               <option value="Vietnam">Vietnam</option>              
           </optgroup>
           <optgroup label="Europe">
			   <option value="Albania">Albania</option>
			   <option value="Andorra">Andorra</option>
			   <option value="Austria">Austria</option>
			   <option value="Belarus">Belarus</option>
			   <option value="Belgium">Belgium</option>
			   <option value="Bosnia-Herzegovina">Bosnia Herzegovina</option>
			   <option value="Bulgaria">Bulgaria</option>
			   <option value="Czech. Repuplic">Czech. Republic</option>
			   <option value="Croatia">Croatia</option>
			   <option value="Denmark">Denmark</option>
			   <option value="Estonia">Estonia</option>
			   <option value="Finland">Finland</option>
			   <option value="France">France</option>
			   <option value="Germany">Germany</option>
		       <option value="Gibraltar">Gibraltar</option>
			   <option value="Greece">Greece</option>
			   <option value="Hungary">Hungary</option>
			   <option value="Ireland">Ireland</option>
			   <option value="Iceland">Iceland</option>
			   <option value="Italy">Italy</option>
			   <option value="Latvia">Latvia</option>
			   <option value="Liechtenstein">Liechtenstein</option>
			   <option value="Lithuania">Lithuania</option>
			   <option value="Luxembourg">Luxembourg</option>
			   <option value="Macedonia">Macedonia</option>
			   <option value="Malta">Malta</option>
			   <option value="Moldova">Moldova</option>
			   <option value="Monaco">Monaco</option>
			   <option value="Norway">Norway</option>
			   <option value="Netherlands">Netherlands</option>
			   <option value="Poland">Poland</option>
			   <option value="Portugal">Portugal</option>
			   <option value="Romania">Romania</option>
			   <option value="Russian Federation">Russian Federation</option>
			   <option value="San Marino">San Marino</option>
			   <option value="Slovakia">Slovakia</option>
			   <option value="Slovenia">Slovenia</option>
			   <option value="Spain">Spain</option>
			   <option value="Sweden">Sweden</option>
			   <option value="Switzerland">Switzerland</option>
			   <option value="Turkey">Turkey</option>
			   <option value="United Kingdom">United Kingdom</option>
			   <option value="Ukraine">Ukraine</option>
			   <option value="Vatican">Vatican</option>
			   <option value="Yugoslavia">Yugoslavia</option>
           </optgroup> 
           <optgroup label="Middle East">
               <option value="Bahrain">Bahrain</option>
               <option value="Iraq">Iraq</option>
               <option value="Iran">Iran</option>
               <option value="Israel">Israel</option>
               <option value="Jordania">Jordania</option>
               <option value="Kuwait">Kuwait</option>
               <option value="Lebanon">Lebanon</option>
               <option value="Oman">Oman</option>
               <option value="Palestine">Palestine</option>
               <option value="Qatar">Qatar</option>
               <option value="Saudi Arabia">Saudi Arabia</option>
               <option value="Syria">Syria</option>
               <option value="United Arab Emirates">United Arab Emirates</option>
               <option value="Yemen">Yemen</option>
           </optgroup>   
           <optgroup label="Oceania">
               <option value="Australia">Australia</option>
               <option value="Fiji">Fiji</option>
               <option value="French Polynesia">French Polynesia</option>
               <option value="Guam">Guam</option>
               <option value="Kiribati">Kiribati</option>
               <option value="Marshall Islands">Marshall Islands</option>
               <option value="Micronesia">Micronesia</option>
               <option value="New Caledonia">New Caledonia</option>
               <option value="New Zealand">New Zealand</option>
               <option value="Papua New Guinea">Papua New Guinea</option>
               <option value="Samoa">Samoa</option>
               <option value="Samoa (US)">Samoa (US)</option>
               <option value="Solomon (Islands)">Solomon (Islands)</option>
               <option value="Tonga">Tonga</option>
               <option value="Vanuatu">Vanuatu</option>
           </optgroup>
       </select>
   </p>
     <p>
       <label for="city" class="font" tabindex="5">City</label><br />
       <input type="text" name="city" maxlength="40" />
       <br /></p>
     <p>
       <label for="company" class="font" tabindex="6">Company</label><br />
       <input type="text" name="company" maxlength="40" />
       <br /></p>
     <p>  
       <label for="e_mail" class="font" tabindex="7">E-mail</label><br />
       <input type="text" name="e_mail" maxlength="40" />
       <br /></p>
     <p> 
       <label for="phone" class="font" tabindex="8">Phone (company)</label><br />
       <input type="text" name="phone_company" maxlength="20" />
       <br /></p>
     <p> 
       <label for="phone" class="font" tabindex="9">Phone (cellular)</label><br />
       <input type="text" name="phone_cellular" maxlength="20" />
       <br /></p>
     <p> 
       <label for="message" class="font" tabindex="10">Your message</label><br />
       <textarea name="message" rows="20" cols="100" maxlength="5000"></textarea>       
       </p>
       <p>
       <input type="submit" value="submit" name="envoi" tabindex="11" /> 
     </p>
   </fieldset>
</form>
</div>    
</body>
</html>
PHP :

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
<?php
 
	// destinataire is my e-mail. Could get several adresses, separate by commas
	$destinataire = 'contact@mywebsite.com';
 
	// send copy to visitor
	$copie = 'oui';   
 
	// Action du formulaire (si ma page avait des paramètres dans l'URL)
	// si cette page etait index.php?page=contact alors j'aurai du mettre index.php?page=contact
	// sinon on laisse vide
	$form_action = '';
 
	// Messages de confirmation du mail
	$message_ok = "Your message has succesfully been sent to Mon Nom";
	$message_error = "An error occurred. Please, try again.";
 
	// Message d'erreur du formulaire
	$message_invalid = "An error occured. You forgot to specify one or several fields. Please, try again.";
 
 
	// cette fonction sert à nettoyer et enregistrer un texte
 
	function Rec($text)
	{
		$text = trim($text); // delete white spaces after & before text
		if (1 === get_magic_quotes_gpc())
		{
			$stripslashes = create_function('$txt', 'return stripslashes($txt);');
		}
		else
		{
			$stripslashes = create_function('$txt', 'return $txt;');
		}
 
		// magic quotes ?
		$text = $stripslashes($text);
		$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
		$text = nl2br($text);
		return $text;
	};
 
	/*
	 * Cette fonction sert à vérifier la syntaxe d'un email
	 */
	function IsEmail($e_mail)
	{
		$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
		return (eregi($pattern,$e_mail)) ? true : false;
	};
 
	$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
 
	// si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
	$civility = (isset($_POST['civility'])) ? Rec($_POST['civility']) : '';
	$last_name = (isset($_POST['last_name'])) ? Rec($_POST['last_name']) : '';
	$first_name = (isset($_POST['first_name'])) ? Rec($_POST['first_name']) : ''; 
	$country = (isset($_POST['country'])) ? Rec($_POST['country']) : '';
	$city = (isset($_POST['city'])) ? Rec($_POST['city']) : '';
	$company = (isset($_POST['company'])) ? Rec($_POST['company']) : '';
	$e_mail = (isset($_POST['e_mail'])) ? Rec($_POST['e_mail']) : '';
	$phone_company = (isset($_POST['phone_company'])) ? Rec($_POST['phone_company']) : '';
	$phone_cellular = (isset($_POST['phone_cellular'])) ? Rec($_POST['phone_cellular']) : '';
	$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
 
	if (isset($_POST['envoi']))   
	{
		// On vérifie les variables et l'email ...
		$e_mail = (IsEmail($e_mail)) ? $e_mail : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
		$err_formulaire = (IsEmail($e_mail)) ? false : true;
 
		if (($civility != '') && ($last_name != '') && ($first_name != '')  && ($country != '')  && ($city != '') && ($company != '') && ($e_mail != '') && ($phone_company != '') && ($phone_cellular != '') && ($message != ''))
		{
			// les variables sont remplies, on génère puis envoie le mail
			$headers = 'From: '.$last_name .$first_name.' <'.$e_mail.'>' . "\r\n";
 
			// envoyer une copie au visiteur ?
			if ($copie == 'oui')
			{
				$cible = $destinataire.','.$e_mail;
			}
			else
			{
				$cible = $destinataire;
			};
 
			// Remplacement de certains caractères spéciaux
			$message = html_entity_decode($message);
			$message = str_replace(''',"'",$message);
			$message = str_replace('’',"'",$message);
			$message = str_replace('<br>','',$message);
			$message = str_replace('<br />','',$message);
 
			// Envoi du mail
			if (mail($cible, $civility, $last_name, $first_name, $country, $city, $company, $e_mail, $phone_company, $phone_cellular, $message, $headers))
			{
				echo '<p>'.$message_ok.'</p>'."\n";
			}
			else
			{
				echo '<p>'.$message_error.'</p>'."\n";
			};
		}
		else
		{
			// une des variables (ou plus) est vide ...
			echo '<p>'.$message_invalid.' <a href="contact.html">Return to form contact</a></p>'."\n"; 
			$err_formulaire = true;
		};
	}; // fin du if (!isset($_POST['envoi']))
 
?>

Maintenant ça me renvoie "An error occurred. Please, try again."

Mais c'est pas possible !! Pourtant là normalement c'est bon ??????

templari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 18h35   #9
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
mail() ne s'utilise pas comme ça.
Lis la doc

(indice : les paramètres ne sont pas bons)
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 00h50   #10
Invité régulier
 
Homme
Consultant en sécurité
Inscription : avril 2011
Messages : 47
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en sécurité
Secteur : Conseil

Informations forums :
Inscription : avril 2011
Messages : 47
Points : 6
Points : 6
Arghh...

Je vois bien de quoi tu me parles, c'est vers là dans mon code que ça cloche :

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
// les variables sont remplies, on génère puis envoie le mail
 
			$headers = 'From: '.$e_mail.' <'.$e_mail.'>' . "\r\n";
 
			// envoyer une copie au visiteur ?
 
			if ($copie == 'oui')
			{
				$cible = $destinataire.','.$e_mail;
			}
			else
			{
				$cible = $destinataire;
			};
 
			// Remplacement de certains caractères spéciaux
			$message = html_entity_decode($message);
			$message = str_replace('&#039;',"'",$message);
			$message = str_replace('&#8217;',"'",$message);
			$message = str_replace('<br>','',$message);
			$message = str_replace('<br />','',$message);
 
			// Envoi du mail
			if (mail($cible, $civility, $last_name, $first_name, $country, $city, $company, $e_mail, $phone_company, $phone_cellular, $message, $headers))
			{
				echo '<p>'.$message_ok.'</p>'."\n";
			}
			else
			{
				echo '<p>'.$message_error.'</p>'."\n";
			};
		}
		else
		{
			// une des variables (ou plus) est vide ...
			echo '<p>'.$message_invalid.' <a href="contact.html">Return to form contact</a></p>'."\n"; 
			$err_formulaire = true;
		};
	}; // fin du if (!isset($_POST['envoi']))
J'ai rajouté au formulaire un champ "subject" et je souhaite que $e_mail me soit envoyé comme "expéditeur" et que $object comme "objet" puis je souhaite que dans le corps du message soit affiché cela de la sorte :

_______________________________________________________


civility: $civility
last name : $last_name
first name : $first_name
country : $country
city : $city
company : $company
e-mail : e_mail
phone (company) : $phone_company
phone (cellular) : $phone_cellular


$message

_______________________________________________________


Mais je ne vois pas quoi enlever... comment modifier. J'ai bien lu la syntaxe.

Mais elle ne correspond pas à celle-ci.

Si tu sais faire, s'il-te-plaît, file moi l'info, je saisirai alors mon erreur et saurai comment l'appliquer à l'avenir, car là, j'essaie mais ça ne fonctionne pas. Je tourne en rond. Au moins après je saurai comment faire.

Merci Shikiryu.

NB : tu peux commenter ton code si tu veux pour que je saisisse mieux, comme tu peux le constater, je ne suis pas un expert du PHP, il fut un temps encore, ça allait, mais le manque de pratique m'a fait oublier beaucoup de choses... j'espère que tu seras compréhensif. Si tu veux, contacte moi par MP je te donnerai une petite récompense car j'aimerai bien que ça fonctionne assez rapidement en fait... et là je tourne en rond.

Merci
templari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 10h15   #11
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
La fonction mail() de PHP doit s'écrire comme ça :

Code :
mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
Il te faut donc 3 variables principales :
  • l'adresse à laquelle tu veux envoyer un email
  • le sujet du mail
  • le corps du mail

Tu as déjà l'adresse de destination et l'objet, mais ton corps est en plusieurs morceaux (c'est bizarre à dire ça )
Il faut donc le construire.

Pour cela, tu peux faire :
Code :
1
2
3
4
5
6
7
8
9
10
$body = "civility: $civility\r\n
last name : $last_name\r\n
first name : $first_name\r\n
country : $country\r\n
city : $city\r\n
company : $company\r\n
e-mail : e_mail\r\n
phone (company) : $phone_company\r\n
phone (cellular) : $phone_cellular\r\n\r\n
$message";
Voilà, la variable $body contient le corps de ton mail.

Il ne te reste plus qu'à modifier la fonction mail dans ton code :

Code :
1
2
3
4
5
6
7
8
if (mail($e_mail, $object, $body))
{
	echo '<p>'.$message_ok.'</p>';
}
else
{
	echo '<p>'.$message_error.'</p>';
};
Je ne suis pas sûr que tu cherches réellement à renvoyer les détails que la personne à rempli à celle-ci, ça serait redondant.

Rien ne t'empêche de lui envoyer un message de confirmation et de t'envoyer un email avec les détails :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
$headers = 'From: webmaster@example.com' . "\r\n" .
     'Reply-To: webmaster@example.com' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();
 
if (mail($e_mail, 'website: confirmation', "You're message has been sent successfully. You'll get an answer as soon as possible.", $headers)) 
/* on envoie à l'email de la personne qui a rempli le formulaire avec un objet et un corps
$headers contient les en-têtes de l'email. Tu peux lui indiquer une adresse expéditeur et une de réponse.
*/
{
	mail('webmaster@example.com', $object, $body); // Tu t'envoies un email (en changeant l'adresse de destination par la tienne ;)) avec le contenu du formulaire
        echo '<p>'.$message_ok.'</p>';
}
else
{
	echo '<p>'.$message_error.'</p>';
};
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 11h12   #12
Invité régulier
 
Homme
Consultant en sécurité
Inscription : avril 2011
Messages : 47
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en sécurité
Secteur : Conseil

Informations forums :
Inscription : avril 2011
Messages : 47
Points : 6
Points : 6
Bonjour Shikiryu,

merci pour ta réponse.

Il est vrai que cela me parait plus clair dorénavant, notamment l'initialisation de la variable $body !

Cependant, cela ne fonctionne hélas toujours pas...

Ai-je (encore) fait une petite erreur de syntaxe ?

Je te renvoie le tout :

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
<?php
 
	// destinataire is my e-mail. Could get several adresses, separate by commas
	$destinataire = 'contact@website.com';
 
	// send copy to visitor
	$copie = 'oui';   
 
	// Action du formulaire (si ma page avait des paramètres dans l'URL)
	// si cette page etait index.php?page=contact alors j'aurai du mettre index.php?page=contact
	// sinon on laisse vide
	$form_action = '';
 
	// Messages de confirmation du mail
	$message_ok = "Your message has succesfully been sent to Mon Nom";
	$message_error = "An error occurred. Please, try again.";
 
	// Message d'erreur du formulaire
	$message_invalid = "An error occured. You forgot to specify one or several fields. Please, try again.";
 
 
	// cette fonction sert à nettoyer et enregistrer un texte
 
	function Rec($text)
	{
		$text = trim($text); // delete white spaces after & before text
		if (1 === get_magic_quotes_gpc())
		{
			$stripslashes = create_function('$txt', 'return stripslashes($txt);');
		}
		else
		{
			$stripslashes = create_function('$txt', 'return $txt;');
		}
 
		// magic quotes ?
		$text = $stripslashes($text);
		$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
		$text = nl2br($text);
		return $text;
	};
 
 
 
 
 
 
	/*
	 * Cette fonction sert à vérifier la syntaxe d'un email
	 */
	function IsEmail($e_mail)
	{
		$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
		return (eregi($pattern,$e_mail)) ? true : false;
	};
 
	$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
 
	// si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
	$civility = (isset($_POST['civility'])) ? Rec($_POST['civility']) : '';
	$last_name = (isset($_POST['last_name'])) ? Rec($_POST['last_name']) : '';
	$first_name = (isset($_POST['first_name'])) ? Rec($_POST['first_name']) : ''; 
	$country = (isset($_POST['country'])) ? Rec($_POST['country']) : '';
	$city = (isset($_POST['city'])) ? Rec($_POST['city']) : '';
	$company = (isset($_POST['company'])) ? Rec($_POST['company']) : '';
	$e_mail = (isset($_POST['e_mail'])) ? Rec($_POST['e_mail']) : '';
	$phone_company = (isset($_POST['phone_company'])) ? Rec($_POST['phone_company']) : '';
	$phone_cellular = (isset($_POST['phone_cellular'])) ? Rec($_POST['phone_cellular']) : '';
	$subject = (isset($_POST['subject'])) ? Rec($_POST['subject']) : '';
	$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
 
	// Remplacement de certains caractères spéciaux
			$message = html_entity_decode($message);
			$message = str_replace(''',"'",$message);
			$message = str_replace('’',"'",$message);
			$message = str_replace('<br>','',$message);
			$message = str_replace('<br />','',$message);
 
	if (isset($_POST['envoi']))   
	{
		// On vérifie les variables et l'email ...
		$e_mail = (IsEmail($e_mail)) ? $e_mail : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
		$err_formulaire = (IsEmail($e_mail)) ? false : true;
 
		$body = "civility: $civility\r\n 
                 last name : $last_name\r\n
                 first name : $first_name\r\n
                 country : $country\r\n
                 city : $city\r\n
                 company : $company\r\n
                 e-mail : e_mail\r\n
                 phone (company) : $phone_company\r\n
                 phone (cellular) : $phone_cellular\r\n\r\n
                 $message";
 
		if (($civility != '') && ($last_name != '') && ($first_name != '')  && ($country != '')  && ($city != '') && ($company != '') && ($e_mail != '') && ($phone_company != '') && ($phone_cellular != '') && ($subject != '') && ($message != ''))
		{			
 
			if (mail($e_mail, $object, $body))
{
	echo '<p>'.$message_ok.'</p>';
}
else
{
	echo '<p>'.$message_error.'</p>';
};
else
		{
			// une des variables (ou plus) est vide ...
			echo '<p>'.$message_invalid.' <a href="contact.html">Return to form contact</a></p>'."\n"; 
			$err_formulaire = true;
		};
 
 
$headers = 'From: contact@website.com' . "\r\n" .
     'Reply-To: contact@website.com' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();
 
if (mail($e_mail, 'website: confirmation', "You're message has been sent successfully. You'll get an answer as soon as possible.", $headers)) 
/* on envoie à l'email de la personne qui a rempli le formulaire avec un objet et un corps
$headers contient les en-têtes de l'email. Tu peux lui indiquer une adresse expéditeur et une de réponse.
*/
{
	mail('contact@website.com', $object, $body); // Tu t'envoies un email (en changeant l'adresse de destination by yours
        echo '<p>'.$message_ok.'</p>';
}
else
{
	echo '<p>'.$message_error.'</p>';
}};
 
 
			}; // fin du if (!isset($_POST['envoi']))
 
 
?>
Où est Charly ?
templari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 11h18   #13
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
C'est vrai que vous m'aviez parlé de la variable $object dans le dernier message mais maintenant je me rend compte que je ne vois pas d'où elle vient

Initialisez la variable $object avec l'objet souhaité ou remplacez la directement dans mail().
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 12h46   #14
Invité régulier
 
Homme
Consultant en sécurité
Inscription : avril 2011
Messages : 47
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en sécurité
Secteur : Conseil

Informations forums :
Inscription : avril 2011
Messages : 47
Points : 6
Points : 6
Non en fait c'était pas "object" mais "subject" ; j'ai rectifié :

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
<?php
 
	// destinataire is my e-mail. Could get several adresses, separate by commas
	$destinataire = 'contact@monwebsite.com';
 
	// send copy to visitor
	$copie = 'oui';   
 
	// Action du formulaire (si ma page avait des paramètres dans l'URL)
	// si cette page etait index.php?page=contact alors j'aurai du mettre index.php?page=contact
	// sinon on laisse vide
	$form_action = '';
 
	// Messages de confirmation du mail
	$message_ok = "Your message has succesfully been sent to Mon Nom";
	$message_error = "An error occurred. Please, try again.";
 
	// Message d'erreur du formulaire
	$message_invalid = "An error occured. You forgot to specify one or several fields. Please, try again.";
 
 
	// cette fonction sert à nettoyer et enregistrer un texte
 
	function Rec($text)
	{
		$text = trim($text); // delete white spaces after & before text
		if (1 === get_magic_quotes_gpc())
		{
			$stripslashes = create_function('$txt', 'return stripslashes($txt);');
		}
		else
		{
			$stripslashes = create_function('$txt', 'return $txt;');
		}
 
		// magic quotes ?
		$text = $stripslashes($text);
		$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
		$text = nl2br($text);
		return $text;
	};
 
 
 
 
 
 
	/*
	 * Cette fonction sert à vérifier la syntaxe d'un email
	 */
	function IsEmail($e_mail)
	{
		$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
		return (eregi($pattern,$e_mail)) ? true : false;
	};
 
	$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
 
	// si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
	$civility = (isset($_POST['civility'])) ? Rec($_POST['civility']) : '';
	$last_name = (isset($_POST['last_name'])) ? Rec($_POST['last_name']) : '';
	$first_name = (isset($_POST['first_name'])) ? Rec($_POST['first_name']) : ''; 
	$country = (isset($_POST['country'])) ? Rec($_POST['country']) : '';
	$city = (isset($_POST['city'])) ? Rec($_POST['city']) : '';
	$company = (isset($_POST['company'])) ? Rec($_POST['company']) : '';
	$e_mail = (isset($_POST['e_mail'])) ? Rec($_POST['e_mail']) : '';
	$phone_company = (isset($_POST['phone_company'])) ? Rec($_POST['phone_company']) : '';
	$phone_cellular = (isset($_POST['phone_cellular'])) ? Rec($_POST['phone_cellular']) : '';
	$subject = (isset($_POST['subject'])) ? Rec($_POST['subject']) : '';
	$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
 
	// Remplacement de certains caractères spéciaux
			$message = html_entity_decode($message);
			$message = str_replace(''',"'",$message);
			$message = str_replace('’',"'",$message);
			$message = str_replace('<br>','',$message);
			$message = str_replace('<br />','',$message);
 
	if (isset($_POST['envoi']))   
	{
		// On vérifie les variables et l'email ...
		$e_mail = (IsEmail($e_mail)) ? $e_mail : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
		$err_formulaire = (IsEmail($e_mail)) ? false : true;
 
		$body = "civility: $civility\r\n 
                 last name : $last_name\r\n
                 first name : $first_name\r\n
                 country : $country\r\n
                 city : $city\r\n
                 company : $company\r\n
                 e-mail : e_mail\r\n
                 phone (company) : $phone_company\r\n
                 phone (cellular) : $phone_cellular\r\n\r\n
                 $message";
 
		if (($civility != '') && ($last_name != '') && ($first_name != '')  && ($country != '')  && ($city != '') && ($company != '') && ($e_mail != '') && ($phone_company != '') && ($phone_cellular != '') && ($subject != '') && ($message != ''))
		{			
 
			if (mail($e_mail, $subject, $body))
{
	echo '<p>'.$message_ok.'</p>';
}
else
{
	echo '<p>'.$message_error.'</p>';
};
else
		{
			// une des variables (ou plus) est vide ...
			echo '<p>'.$message_invalid.' <a href="contact.html">Return to form contact</a></p>'."\n"; 
			$err_formulaire = true;
		};
 
 
$headers = 'From: contact@monwebsite.com' . "\r\n" .
     'Reply-To: contact@monwebsite.com' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();
 
if (mail($e_mail, 'website: confirmation', "You're message has been sent successfully. You'll get an answer as soon as possible.", $headers)) 
/* on envoie à l'email de la personne qui a rempli le formulaire avec un objet et un corps
$headers contient les en-têtes de l'email. Tu peux lui indiquer une adresse expéditeur et une de réponse.
*/
{
	mail('contact@monwebsite.com', $subject, $body); // Tu t'envoies un email (en changeant l'adresse de destination by yours
        echo '<p>'.$message_ok.'</p>';
}
else
{
	echo '<p>'.$message_error.'</p>';
}};
 
 
			}; // fin du if (!isset($_POST['envoi']))
 
 
?>
mais je ne vois pas où remplacer quoi ! peux-tu me montrer le code à changer ? car la variable $subject est pourtant initialisée dans l'isset... ?
templari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 13h47   #15
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Y a toujours quelques erreurs dans ton script (c'est à se demander comment il ne plante pas ):

1-
Ici :
Code :
$message = str_replace(''',"'",$message);
à remplacer par
Code :
$message = str_replace('\'',"'",$message);
car sinon PHP ne comprend pas que tu veuilles attraper une apostrophe.

2-
Code :
1
2
3
4
else
{
	echo '<p>'.$message_error.'</p>';
};
Il ne faut pas mettre de ";" après les accolades des if/else (c'est juste un exemple ici, tu en as plusieurs dans ton code)

3-
Attention, tu envoies 3 emails dans ton script dont 2 à la même adresse (celle rentrée dans le formulaire)

Prend ton temps, relis ton script et regarde bien ce qu'il fait ligne par ligne.


Attention
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 17h23   #16
Invité régulier
 
Homme
Consultant en sécurité
Inscription : avril 2011
Messages : 47
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en sécurité
Secteur : Conseil

Informations forums :
Inscription : avril 2011
Messages : 47
Points : 6
Points : 6
1. Dans mon code j'ai mis ça :

Code :
1
2
3
 
$message = str_replace(''',"'",$message);
$message = str_replace('’',"'",$message);
Ce qui, au final, me donne cela avec ta ligne supplémentaire :

Code :
1
2
3
4
5
6
7
8
 
// Remplacement de certains caractères spéciaux
$message = html_entity_decode($message);
$message = str_replace(''',"'",$message);
$message = str_replace('’',"'",$message);
$message = str_replace('\'',"'",$message)
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
2. J'ai enlevé (je pense) tous les ; qui ne devaient pas être.

3. J'ai bien relu tout le script plusieurs fois, j'ai apporté plusieurs modifications, ça ne fonctionne toujours pas Et je vois bien qu'il y a un cafouillage au niveau de l'envoi des mails aux 2 adresses (la mienne et celle de l'envoyeur) mais je vois pas comment le faire.

Revoilà tout le code avec les modifs..... :

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
141
142
143
144
145
146
147
148
<?php
 
	// destinataire is my e-mail. Could get several adresses, separate by commas
	$destinataire = 'contact@mywebsite.com';
 
	// send copy to visitor
	$copie = 'oui';   
 
	// Action du formulaire (si ma page avait des paramètres dans l'URL)
	// si cette page etait index.php?page=contact alors j'aurai du mettre index.php?page=contact
	// sinon on laisse vide
	$form_action = '';
 
	// Messages de confirmation du mail
	$message_ok = "Your message has succesfully been sent to Mon Nom";
	$message_error = "An error occurred. Please, try again.";
 
	// Message d'erreur du formulaire
	$message_invalid = "An error occured. You forgot to specify one or several fields. Please, try again.";
 
 
	// cette fonction sert à nettoyer et enregistrer un texte
 
	function Rec($text)
	{
		$text = trim($text); // delete white spaces after & before text
		if (1 === get_magic_quotes_gpc())
		{
			$stripslashes = create_function('$txt', 'return stripslashes($txt);');
		}
		else
		{
			$stripslashes = create_function('$txt', 'return $txt;');
		}
 
		// magic quotes ?
		$text = $stripslashes($text);
		$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
		$text = nl2br($text);
		return $text;
	};
 
 
 
 
 
 
	/*
	 * Cette fonction sert à vérifier la syntaxe d'un email
	 */
	function IsEmail($e_mail)
	{
		$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
		return (eregi($pattern,$e_mail)) ? true : false;
	};
 
	$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
 
	// si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
	$civility = (isset($_POST['civility'])) ? Rec($_POST['civility']) : '';
	$last_name = (isset($_POST['last_name'])) ? Rec($_POST['last_name']) : '';
	$first_name = (isset($_POST['first_name'])) ? Rec($_POST['first_name']) : ''; 
	$country = (isset($_POST['country'])) ? Rec($_POST['country']) : '';
	$city = (isset($_POST['city'])) ? Rec($_POST['city']) : '';
	$company = (isset($_POST['company'])) ? Rec($_POST['company']) : '';
	$e_mail = (isset($_POST['e_mail'])) ? Rec($_POST['e_mail']) : '';
	$phone_company = (isset($_POST['phone_company'])) ? Rec($_POST['phone_company']) : '';
	$phone_cellular = (isset($_POST['phone_cellular'])) ? Rec($_POST['phone_cellular']) : '';
	$subject = (isset($_POST['subject'])) ? Rec($_POST['subject']) : '';
	$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
 
	// Remplacement de certains caractères spéciaux
			$message = html_entity_decode($message);
			$message = str_replace('&#039;',"'",$message);
			$message = str_replace('&#8217;',"'",$message);
			$message = str_replace('\'',"'",$message)
			$message = str_replace('<br>','',$message);
			$message = str_replace('<br />','',$message);
 
	if (isset($_POST['envoi']))   
	{
		// On vérifie les variables et l'email ...
		$e_mail = (IsEmail($e_mail)) ? $e_mail : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
		$err_formulaire = (IsEmail($e_mail)) ? false : true;
 
		$body = "civility: $civility\r\n 
                 last name : $last_name\r\n
                 first name : $first_name\r\n
                 country : $country\r\n
                 city : $city\r\n
                 company : $company\r\n
                 e-mail : e_mail\r\n
                 phone (company) : $phone_company\r\n
                 phone (cellular) : $phone_cellular\r\n\r\n
                 $message";
 
		if (($civility != '') && ($last_name != '') && ($first_name != '')  && ($country != '')  && ($city != '') && ($company != '') && ($e_mail != '') && ($phone_company != '') && ($phone_cellular != '') && ($subject != '') && ($message != ''))
		{			
 
			if (mail($e_mail, $subject, $body))
{
	echo '<p>'.$message_ok.'</p>';
}
else
{
	echo '<p>'.$message_error.'</p>';
}
else
		{
			// une des variables (ou plus) est vide ...
			echo '<p>'.$message_invalid.' <a href="contact.html">Return to form contact</a></p>'."\n"; 
			$err_formulaire = true;
		}
 
 
$headers = 'From: '.e_mail.' . "\r\n" .
     'Reply-To: contact@mywebsite.com' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();
 
 
if (mail($e_mail, 'website: confirmation', "You're message has been sent successfully. You'll get an answer as soon as possible.", $headers)) 
 
/* on envoie à l'email de la personne qui a rempli le formulaire avec un objet et un corps
$headers contient les en-têtes de l'email. Tu peux lui indiquer une adresse expéditeur et une de réponse.
*/
 
{
	mail('$e_mail', "Your message to Mon Nom has successfully been sent"); 
 
	/* corps du message envoyé à l'envoyeur */
 
        echo '<p>'"Your message :"'</p>''<br />'
        echo '.$message.'</p>''<br />'
        echo '<p>'"Thanks for your interest. You will get my feedback soon."'</p>''<br />'
        echo '<p>'"King regards,"'</p>''<br />'
        echo '<p>''<i>'"Mon Nom"'</i></p>';
 
}
 
else
 
{
	echo '<p>'.$message_error.'</p>';
}}
 
}; 
 
?>
templari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 17h44   #17
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
1-
J'avais dit remplacer et pas ajouter
Mais en plus, c'était idiot. Tu demandes au script de remplacer des apostrophes par... des apostrophes.
Finalement, il ne devrait rester que :
Code :
1
2
3
$message = str_replace('’',"'",$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
2-
Il en restait un.

3-
J'ai l'impression que tu aimes bien avoir du tout cuit :
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
<?php
 
	// destinataire is my e-mail. Could get several adresses, separate by commas
	$destinataire = 'contact@mywebsite.com';
 
	// send copy to visitor
	$copie = 'oui';   
 
	// Action du formulaire (si ma page avait des paramètres dans l'URL)
	// si cette page etait index.php?page=contact alors j'aurai du mettre index.php?page=contact
	// sinon on laisse vide
	$form_action = '';
 
	// Messages de confirmation du mail
	$message_ok = "Your message has succesfully been sent to Mon Nom";
	$message_error = "An error occurred. Please, try again.";
 
	// Message d'erreur du formulaire
	$message_invalid = "An error occured. You forgot to specify one or several fields. Please, try again.";
 
 
	// cette fonction sert à nettoyer et enregistrer un texte
 
	function Rec($text)
	{
		$text = trim($text); // delete white spaces after & before text
		if (1 === get_magic_quotes_gpc())
		{
			$stripslashes = create_function('$txt', 'return stripslashes($txt);');
		}
		else
		{
			$stripslashes = create_function('$txt', 'return $txt;');
		}
 
		// magic quotes ?
		$text = $stripslashes($text);
		$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
		$text = nl2br($text);
		return $text;
	};
 
 
 
 
 
 
	/*
	 * Cette fonction sert à vérifier la syntaxe d'un email
	 */
	function IsEmail($e_mail)
	{
		$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
		return (eregi($pattern,$e_mail)) ? true : false;
	};
 
	$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
 
	// si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
	$civility = (isset($_POST['civility'])) ? Rec($_POST['civility']) : '';
	$last_name = (isset($_POST['last_name'])) ? Rec($_POST['last_name']) : '';
	$first_name = (isset($_POST['first_name'])) ? Rec($_POST['first_name']) : ''; 
	$country = (isset($_POST['country'])) ? Rec($_POST['country']) : '';
	$city = (isset($_POST['city'])) ? Rec($_POST['city']) : '';
	$company = (isset($_POST['company'])) ? Rec($_POST['company']) : '';
	$e_mail = (isset($_POST['e_mail'])) ? Rec($_POST['e_mail']) : '';
	$phone_company = (isset($_POST['phone_company'])) ? Rec($_POST['phone_company']) : '';
	$phone_cellular = (isset($_POST['phone_cellular'])) ? Rec($_POST['phone_cellular']) : '';
	$subject = (isset($_POST['subject'])) ? Rec($_POST['subject']) : '';
	$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
 
	// Remplacement de certains caractères spéciaux
	$message = html_entity_decode($message);
	$message = str_replace('’',"'",$message);
	$message = str_replace('<br>','',$message);
	$message = str_replace('<br />','',$message);
 
	if (isset($_POST['envoi']))   
	{
		// On vérifie les variables et l'email ...
		$e_mail = (IsEmail($e_mail)) ? $e_mail : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
		$err_formulaire = (IsEmail($e_mail)) ? false : true;
 
		$body = "civility: $civility\r\n 
                 last name : $last_name\r\n
                 first name : $first_name\r\n
                 country : $country\r\n
                 city : $city\r\n
                 company : $company\r\n
                 e-mail : e_mail\r\n
                 phone (company) : $phone_company\r\n
                 phone (cellular) : $phone_cellular\r\n\r\n
                 $message";
		$headers = 'From: '.$destinataire. "\r\n" .
					'Reply-To: '.$destinataire . "\r\n" .
					'X-Mailer: PHP/' . phpversion();
		if (($civility != '') && ($last_name != '') && ($first_name != '')  && ($country != '')  && ($city != '') && ($company != '') && ($e_mail != '') && ($phone_company != '') && ($phone_cellular != '') && ($subject != '') && ($message != ''))
		{			
 
			if (mail($destinataire, $subject, $body) && mail($e_mail, 'website: confirmation', "You're message has been sent successfully. You'll get an answer as soon as possible.", $headers))
			{
				echo '<p>'.$message_ok.'</p>';
			}
			else
			{
				echo '<p>'.$message_error.'</p>';
			}
			else
			{
				// une des variables (ou plus) est vide ...
				echo '<p>'.$message_invalid.' <a href="contact.html">Return to form contact</a></p>'."\n"; 
				$err_formulaire = true;
			}
		}
	}
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 19h25   #18
Invité régulier
 
Homme
Consultant en sécurité
Inscription : avril 2011
Messages : 47
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en sécurité
Secteur : Conseil

Informations forums :
Inscription : avril 2011
Messages : 47
Points : 6
Points : 6
Malheureusement, cela ne fonctionne toujours pas.

(j'ai fait une ou deux modifs sur ton code, quelques oublis, genre fermer la balise PHP ?> à la fin ).

Comme quoi, c'est pas si simple !

Je te refile les codes entiers, teste, tu verras

contact.html :

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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
   <head>
       <title>Contact</title>
       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
              <style type="text/css">
body
 
{
   width: 100%;
   margin: auto;
   margin-top: 2%;
   margin-bottom: 2%;
   background-attachment:fixed;
}
 
 
h1
{
 
   padding-left: 30px;
   padding-right: 30px;
   color: white;
   text-align: center;
   text-decoration: underline;
}
 
fieldset
{
color: #00CCFF;	
border-color: #00CCFF;
}
 
#contact_direct p
{
	font-color: black;
	margin-top: 0%;	
}
 
#contact_via_website
{
	font-color: black;
}
 
 
 
   #corpus
 
{
   margin-left: 10%; 
   margin-right: 10%;
   margin-bottom: 3%; 
   padding-top: 20px; 
   padding-left: 20px;
   padding-right: 20px;
   padding-bottom: 20px;
   color: White;
   background-color: #626262;
   background-repeat: repeat-x; 
   border: 2px solid black;
}
 
.font
 
{
font-family: "Trebuchet", Arial, Verdana, serif;
font-size: 0.75em;
color: black;
}
 
input, textarea, select
 
{
    -moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	-khtml-border-radius: 5px;
	border-radius: 5px;
	behavior: url("border-radius.htc");	
	border-color: #00CCFF;
}
 
 
.ui-button 
{ margin-left: -1px; }
 
.ui-button-icon-only 
 
{ }
 
.ui-button-text 
{ padding: 0.35em; } 
 
.ui-autocomplete-input 
{ margin: 0; padding: 0.48em 0 0.47em 0.45em; }
 
 
   </style>
 
   </head>
 
   <body>
<div id="corpus">     
 <div id="contact_via_website">
 <form method="post" action="process.php">
 <fieldset>
       <legend>Contact me via my website</legend>
    <p>
       <label for="civility" class="font" tabindex="1">Civility</label><br />
       <select name="civility" id="civility">
           <option value=""></option>
           <option value="Mr.">Mr.</option>
           <option value="Ms.">Ms.</option>
           <option value="Mrs.">Mrs.</option>
       </select>
    </p>
    <p> 
       <label for="last_name" class="font" tabindex="2">Last name</label><br />
       <input type="text" name="last_name" maxlength="40" />
       <br /></p>
     <p>
       <label for="first_name" class="font" tabindex="3">First name</label><br />
       <input type="text" name="first_name" maxlength="40" />
       <br /></p>
     <p>
       <label for="country" class="font" tabindex="4">Country</label><br />
       <select name="country">
       <option selected>Select your country</option>
            <optgroup label="Africa">
               <option value="Algeria">Algeria</option>
               <option value="Angola">Angola</option>
               <option value="Benin">Benin</option>
               <option value="Botswana">Botswana</option>
               <option value="Burkina Faso">Burkina Faso</option>
               <option value="Cameroon">Cameroon</option>
               <option value="Cape Verde">Cape Verde</option>
               <option value="Central African Republic">Central African Republic</option>
               <option value="Chad">Chad</option>
               <option value="Comoros">Comoros</option>
               <option value="Congo (Brazzaville)">Congo (Brazzaville)</option>
               <option value="Congo (Democratic Republic of the)">Congo (Democratic Republic of the)</option>
               <option value="Djibouti">Djibouti</option>
               <option value="Egypt">Egypt</option>
               <option value="Equatorial Guinea">Equatorial Guinea</option>
               <option value="Eritrea">Eritrea</option>
               <option value="Ethiopia">Ethiopia</option>
               <option value="Gabon">Gabon</option>
               <option value="Gambia">Gambia</option>
               <option value="Ghana">Ghana</option>
               <option value="Guinea">Guinea</option>
               <option value="Ivory Coast">Ivory Coast</option>
               <option value="Kenya">Kenya</option>
               <option value="Lesotho">Lesotho</option>
               <option value="Liberia">Liberia</option>
               <option value="Libyan Arab Jamahiriya">Libyan Arab Jamahiriya</option>
               <option value="Madagascar">Madagascar</option>
               <option value="Malawi">Malawi</option>
               <option value="Mali">Mali</option>
               <option value="Mauritania">Mauritania</option>
               <option value="Mauritius">Mauritius</option>
               <option value="Mayotte">Mayotte</option>
               <option value="Morroco">Morroco</option>
               <option value="Mozambique">Mozambique</option>
               <option value="Namibia">Namibia</option>
               <option value="Niger">Niger</option>
               <option value="Nigeria">Nigeria</option>
               <option value="Reunion">Reunion</option>
               <option value="Rwanda">Rwanda</option>
               <option value="Saint Helena">Saint Helena</option>
               <option value="Sao Tome and Principe">Sao Tome and Principe</option>
               <option value="Senegal">Senegal</option>
               <option value="Seychelles">Seychelles</option>
               <option value="Sierra Leone">Sierra Leone</option>
               <option value="Somalia">Somalia</option>
               <option value="South Africa">South Africa</option>
               <option value="Sudan">Sudan</option>
               <option value="Swaziland">Swaziland</option>
               <option value="Tanzania (United Republic of)">Tanzania (United Republic of)</option>
               <option value="Togo">Togo</option>
               <option value="Tunisia">Tunisia</option>
               <option value="Uganda">Uganda</option>
               <option value="Western Sahara">Western Sahara</option>
               <option value="Zambia">Zambia</option>
            </optgroup>    
            <optgroup label="America">
               <option value="Anguilla">Anguilla</option>
               <option value="Antigua and Barbuda">Antigua and Barbuda</option>
               <option value="Argentina">Argentina</option>
               <option value="Aruba">Aruba</option>
               <option value="Bahamas">Bahamas</option>
               <option value="Barbados">Barbados</option>
               <option value="Belize">Belize</option>
               <option value="Bermuda">Bermuda</option>
               <option value="Bolivia">Bolivia</option>
               <option value="Brazil">Brazil</option>
               <option value="British Virgin Islands">British Virgin Islands</option>
               <option value="Canada">Canada</option>
               <option value="Cayman Islands">Cayman Islands</option>
               <option value="Chile">Chile</option>
               <option value="Colombia">Colombia</option>
               <option value="Costa Rica">Costa Rica</option>
               <option value="Cuba">Cuba</option>
               <option value="Dominica">Dominica</option>
               <option value="Dominican Republic">Dominican Republic</option>
               <option value="Ecuador">Ecuador</option>
               <option value="Folkland Islands (Malvinas)">Folkland Islands (Malvinas)</option>
               <option value="French Guiana">French Guiana</option>
               <option value="Greenland">Greenland</option>
               <option value="Grenada">Grenada</option>
               <option value="Guadeloupe">Guadeloupe</option>
               <option value="Guatemala">Guatemala</option>
               <option value="Guyana">Guyana</option>
               <option value="Haiti">Haiti</option>
               <option value="Honduras">Honduras</option>
               <option value="Jamaica">Jamaica</option>
               <option value="Martinique">Martinique</option>
               <option value="Mexico">Mexico</option>
               <option value="Monserrat">Monserrat</option>
               <option value="Netherlands Antilles">Netherlands Antilles</option>
               <option value="Nicaragua">Nicaragua</option>
               <option value="Panama">Panama</option>
               <option value="Paraguay">Paraguay</option>
               <option value="Peru">Peru</option>
               <option value="Puerto Rico">Puerto Rico</option>
               <option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
               <option value="Saint Lucia">Saint Lucia</option>
               <option value="Saint Pierre and Miquelon">Saint Pierre and Miquelon</option>
               <option value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option>
               <option value="Salvadore">Salvadore</option>
               <option value="Suriname">Suriname</option>
               <option value="Trinidad and Tobago">Trinidad and Tobago</option>
               <option value="Turks and Caicos Islands">Turks and Caicos Islands</option>
               <option value="United States of America">United States of America</option>
               <option value="Uruguay">Uruguay</option>
               <option value="Venezuela">Venezuela</option>
               <option value="Virgin Islands">Virgin Islands</option>
           </optgroup>
           <optgroup label="Asia Pacific">
               <option value="Afghanistan">Afghanistan</option>
               <option value="Bangladesh">Bangladesh</option>
               <option value="Bhutan">Bhutan</option>
               <option value="Brunei">Brunei</option>
               <option value="Cambodia">Cambodia</option>
               <option value="China">China</option>
               <option value="Georgia">Georgia</option>
               <option value="India">India</option>
               <option value="Indonesia">Indonesia</option>
               <option value="Japan">Japan</option>
               <option value="Kazakhstan">Kazakhstan</option>
               <option value="Kuwait">Kuwait</option>
               <option value="Kyrgyzstan">Kyrgyzstan</option>
               <option value="Laos">Laos</option>
               <option value="Malaysia">Malaysia</option>
               <option value="Maldives">Maldives</option>
               <option value="Mongolia">Mongolia</option>
               <option value="Myanmar">Myanmar</option>
               <option value="Nepal">Nepal</option>
               <option value="North Korea">North Korea</option>
               <option value="Pakistan">Pakistan</option>
               <option value="Papua New Guinea">Papua New Guinea</option>
               <option value="Philippines">Philippines</option>
               <option value="Singapore">Singapore</option>
               <option value="South Korea">South Korea</option>
               <option value="Sri Lanka">Sri Lanka</option>
               <option value="Taiwan">Taiwan</option>
               <option value="Tajikistan">Tajikistan</option>
               <option value="Thailand">Thailand</option>
               <option value="Turkmenistan">Turkmenistan</option>
               <option value="Uzbekistan">Uzbekistan</option> 
               <option value="Vietnam">Vietnam</option>              
           </optgroup>
           <optgroup label="Europe">
			   <option value="Albania">Albania</option>
			   <option value="Andorra">Andorra</option>
			   <option value="Austria">Austria</option>
			   <option value="Belarus">Belarus</option>
			   <option value="Belgium">Belgium</option>
			   <option value="Bosnia-Herzegovina">Bosnia Herzegovina</option>
			   <option value="Bulgaria">Bulgaria</option>
			   <option value="Czech. Repuplic">Czech. Republic</option>
			   <option value="Croatia">Croatia</option>
			   <option value="Denmark">Denmark</option>
			   <option value="Estonia">Estonia</option>
			   <option value="Finland">Finland</option>
			   <option value="France">France</option>
			   <option value="Germany">Germany</option>
		       <option value="Gibraltar">Gibraltar</option>
			   <option value="Greece">Greece</option>
			   <option value="Hungary">Hungary</option>
			   <option value="Ireland">Ireland</option>
			   <option value="Iceland">Iceland</option>
			   <option value="Italy">Italy</option>
			   <option value="Latvia">Latvia</option>
			   <option value="Liechtenstein">Liechtenstein</option>
			   <option value="Lithuania">Lithuania</option>
			   <option value="Luxembourg">Luxembourg</option>
			   <option value="Macedonia">Macedonia</option>
			   <option value="Malta">Malta</option>
			   <option value="Moldova">Moldova</option>
			   <option value="Monaco">Monaco</option>
			   <option value="Norway">Norway</option>
			   <option value="Netherlands">Netherlands</option>
			   <option value="Poland">Poland</option>
			   <option value="Portugal">Portugal</option>
			   <option value="Romania">Romania</option>
			   <option value="Russian Federation">Russian Federation</option>
			   <option value="San Marino">San Marino</option>
			   <option value="Slovakia">Slovakia</option>
			   <option value="Slovenia">Slovenia</option>
			   <option value="Spain">Spain</option>
			   <option value="Sweden">Sweden</option>
			   <option value="Switzerland">Switzerland</option>
			   <option value="Turkey">Turkey</option>
			   <option value="United Kingdom">United Kingdom</option>
			   <option value="Ukraine">Ukraine</option>
			   <option value="Vatican">Vatican</option>
			   <option value="Yugoslavia">Yugoslavia</option>
           </optgroup> 
           <optgroup label="Middle East">
               <option value="Bahrain">Bahrain</option>
               <option value="Iraq">Iraq</option>
               <option value="Iran">Iran</option>
               <option value="Israel">Israel</option>
               <option value="Jordania">Jordania</option>
               <option value="Kuwait">Kuwait</option>
               <option value="Lebanon">Lebanon</option>
               <option value="Oman">Oman</option>
               <option value="Palestine">Palestine</option>
               <option value="Qatar">Qatar</option>
               <option value="Saudi Arabia">Saudi Arabia</option>
               <option value="Syria">Syria</option>
               <option value="United Arab Emirates">United Arab Emirates</option>
               <option value="Yemen">Yemen</option>
           </optgroup>   
           <optgroup label="Oceania">
               <option value="Australia">Australia</option>
               <option value="Fiji">Fiji</option>
               <option value="French Polynesia">French Polynesia</option>
               <option value="Guam">Guam</option>
               <option value="Kiribati">Kiribati</option>
               <option value="Marshall Islands">Marshall Islands</option>
               <option value="Micronesia">Micronesia</option>
               <option value="New Caledonia">New Caledonia</option>
               <option value="New Zealand">New Zealand</option>
               <option value="Papua New Guinea">Papua New Guinea</option>
               <option value="Samoa">Samoa</option>
               <option value="Samoa (US)">Samoa (US)</option>
               <option value="Solomon (Islands)">Solomon (Islands)</option>
               <option value="Tonga">Tonga</option>
               <option value="Vanuatu">Vanuatu</option>
           </optgroup>
       </select>
   </p>
     <p>
       <label for="city" class="font" tabindex="5">City</label><br />
       <input type="text" name="city" maxlength="40" />
       <br /></p>
     <p>
       <label for="company" class="font" tabindex="6">Company</label><br />
       <input type="text" name="company" maxlength="40" />
       <br /></p>
     <p>  
       <label for="e_mail" class="font" tabindex="7">E-mail</label><br />
       <input type="text" name="e_mail" maxlength="40" />
       <br /></p>
     <p> 
       <label for="phone" class="font" tabindex="8">Phone (company)</label><br />
       <input type="text" name="phone_company" maxlength="20" />
       <br /></p>
     <p> 
       <label for="phone" class="font" tabindex="9">Phone (cellular)</label><br />
       <input type="text" name="phone_cellular" maxlength="20" />
       <br /></p>
     <p> 
       <label for="subject" class="font" tabindex="10">Subject</label><br />
       <input type="text" name="subject" maxlength="60" />
       <br /></p>  
     <p> 
       <label for="message" class="font" tabindex="11">Your message</label><br />
       <textarea name="message" rows="20" cols="100" maxlength="5000"></textarea>       
       </p>
       <p>
       <input type="submit" value="submit" name="envoi" tabindex="12" /> 
     </p>
   </fieldset>
</form>
</div>
<form method="post">
 
 <fieldset>
       <legend>Contact me directly</legend>
 <div id="contact_direct" class="font" name="contact_direct"><br />
    <p><b><u>Postal adress :</u></b></p>      
    <p>Mon Nom</p>
    <p>15, rue Saint Francois</p>
    <p>75019 Paris</p><br />
    <p><b><u>Phone number :</u></b></p>
    <p>+0033(0)687014321</p><br />
    <p><b><u>E-mail adress :</u></b></p>
    <p><u>contact@mywebsite.com</u></p><br />  
    </div>
       </fieldset>
       </form> 
     </div>
   </body>
</html>
process.php :

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
<?php
 
	$destinataire = 'contact@mywebsite.com';
 
	$copie = 'oui';   
 
	$form_action = '';
 
	// Messages de confirmation du mail
	$message_ok = "Your message has succesfully been sent to Mon Nom";
	$message_error = "An error occurred. Please, try again.";
 
	// Message d'erreur du formulaire
	$message_invalid = "An error occured. You forgot to specify one or several fields. Please, try again.";
 
	function Rec($text)
	{
		$text = trim($text); // delete white spaces after & before text
		if (1 == get_magic_quotes_gpc())
		{
			$stripslashes = create_function('$txt', 'return stripslashes($txt);');
		}
		else
		{
			$stripslashes = create_function('$txt', 'return $txt;');
		}
 		$text = $stripslashes($text);
		$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
		$text = nl2br($text);
		return $text;
	};
 
	function IsEmail($e_mail)
	{
		$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
		return (eregi($pattern,$e_mail)) ? true : false;
	};
 
	$err_formulaire = false; 
 
	$civility = (isset($_POST['civility'])) ? Rec($_POST['civility']) : '';
	$last_name = (isset($_POST['last_name'])) ? Rec($_POST['last_name']) : '';
	$first_name = (isset($_POST['first_name'])) ? Rec($_POST['first_name']) : ''; 
	$country = (isset($_POST['country'])) ? Rec($_POST['country']) : '';
	$city = (isset($_POST['city'])) ? Rec($_POST['city']) : '';
	$company = (isset($_POST['company'])) ? Rec($_POST['company']) : '';
	$e_mail = (isset($_POST['e_mail'])) ? Rec($_POST['e_mail']) : '';
	$phone_company = (isset($_POST['phone_company'])) ? Rec($_POST['phone_company']) : '';
	$phone_cellular = (isset($_POST['phone_cellular'])) ? Rec($_POST['phone_cellular']) : '';
	$subject = (isset($_POST['subject'])) ? Rec($_POST['subject']) : '';
	$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
 
	$message = html_entity_decode($message);
	$message = str_replace('’',"'",$message);
	$message = str_replace('<br>','',$message);
	$message = str_replace('<br />','',$message);
 
	if (isset($_POST['envoi']))   
	{
		$e_mail = (IsEmail($e_mail)) ? $e_mail : ''; 
		$err_formulaire = (IsEmail($e_mail)) ? false : true;
 
		$body = "civility : $civility\r\n 
                 last name : $last_name\r\n
                 first name : $first_name\r\n
                 country : $country\r\n
                 city : $city\r\n
                 company : $company\r\n
                 e-mail : e_mail\r\n
                 phone (company) : $phone_company\r\n
                 phone (cellular) : $phone_cellular\r\n\r\n
                 $message";
		$headers = 'From: '.$destinataire. "\r\n" .
					'Reply-To: '.$destinataire . "\r\n" .
					'X-Mailer: PHP/' . phpversion();
		if (($civility != '') && ($last_name != '') && ($first_name != '')  && ($country != '')  && ($city != '') && ($company != '') && ($e_mail != '') && ($phone_company != '') && ($phone_cellular != '') && ($subject != '') && ($message != ''))
		{			
			if (mail($destinataire, $subject, $body) && mail($e_mail, 'website: confirmation', "You're message has been sent successfully. You'll get an answer as soon as possible.", $headers))
			{
				echo '<p>'.$message_ok.'</p>';
			}
			else
			{
				echo '<p>'.$message_error.'</p>';
			}
			else
			{
				echo '<p>'.$message_invalid.' <a href="contact.html">Return to form contact</a></p>'."\n"; 
				$err_formulaire = true;
			}
		}
	}
?>
templari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 23h40   #19
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
La balise ?> de fin n'a pas été oubliée, elle n'est pas obligatoire si c'est la fin du fichier. Tu peux essayer tu verras

Tu as cafouillé les } sur la fin

Je te l'ai modifié et testé, il fonctionne sur mon serveur.
J'avais changé l'adresse de destination

Par contre, j'ai eu 1 alerte concernant (je l'avais pas vu celui-là) qui est une méthode deprecated (elle fonctionne mais mieux vaut utiliser preg_match() de la même manière.

Je l'ai changé ici.

Dernière remarque :
J'ai retiré les tabulations dans la création de $body car elles étaient présentes dans le mail et faisait un décalage ... moche.


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
<?php
 
	$destinataire = 'contact@mywebsite.com';
 
	$copie = 'oui';   
 
	$form_action = '';
 
	// Messages de confirmation du mail
	$message_ok = "Your message has succesfully been sent to Mon Nom";
	$message_error = "An error occurred. Please, try again.";
 
	// Message d'erreur du formulaire
	$message_invalid = "An error occured. You forgot to specify one or several fields. Please, try again.";
 
	function Rec($text)
	{
		$text = trim($text); // delete white spaces after & before text
		if (1 == get_magic_quotes_gpc())
		{
			$stripslashes = create_function('$txt', 'return stripslashes($txt);');
		}
		else
		{
			$stripslashes = create_function('$txt', 'return $txt;');
		}
 		$text = $stripslashes($text);
		$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
		$text = nl2br($text);
		return $text;
	};
 
	function IsEmail($e_mail)
	{
		$pattern = "/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$/";
		return (preg_match($pattern,$e_mail)) ? true : false;
	};
 
	$err_formulaire = false; 
 
	$civility = (isset($_POST['civility'])) ? Rec($_POST['civility']) : '';
	$last_name = (isset($_POST['last_name'])) ? Rec($_POST['last_name']) : '';
	$first_name = (isset($_POST['first_name'])) ? Rec($_POST['first_name']) : ''; 
	$country = (isset($_POST['country'])) ? Rec($_POST['country']) : '';
	$city = (isset($_POST['city'])) ? Rec($_POST['city']) : '';
	$company = (isset($_POST['company'])) ? Rec($_POST['company']) : '';
	$e_mail = (isset($_POST['e_mail'])) ? Rec($_POST['e_mail']) : '';
	$phone_company = (isset($_POST['phone_company'])) ? Rec($_POST['phone_company']) : '';
	$phone_cellular = (isset($_POST['phone_cellular'])) ? Rec($_POST['phone_cellular']) : '';
	$subject = (isset($_POST['subject'])) ? Rec($_POST['subject']) : '';
	$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
 
	$message = html_entity_decode($message);
	$message = str_replace('’',"'",$message);
	$message = str_replace('<br>','',$message);
	$message = str_replace('<br />','',$message);
 
	if (isset($_POST['envoi']))   
	{
		$e_mail = (IsEmail($e_mail)) ? $e_mail : ''; 
		$err_formulaire = (IsEmail($e_mail)) ? false : true;
 
		$body = "civility : $civility\r\n 
last name : $last_name\r\n
first name : $first_name\r\n
country : $country\r\n
city : $city\r\n
company : $company\r\n
e-mail : e_mail\r\n
phone (company) : $phone_company\r\n
phone (cellular) : $phone_cellular\r\n\r\n
$message";
		$headers = 'From: '.$destinataire. "\r\n" .
					'Reply-To: '.$destinataire . "\r\n" .
					'X-Mailer: PHP/' . phpversion();
		if (($civility != '') && ($last_name != '') && ($first_name != '')  && ($country != '')  && ($city != '') && ($company != '') && ($e_mail != '') && ($phone_company != '') && ($phone_cellular != '') && ($subject != '') && ($message != ''))
		{			
			if (mail($destinataire, $subject, $body) && mail($e_mail, 'website: confirmation', "You're message has been sent successfully. You'll get an answer as soon as possible.", $headers))
			{
				echo '<p>'.$message_ok.'</p>';
			}
			else
			{
				echo '<p>'.$message_error.'</p>';
			}
		}
			else
			{
				echo '<p>'.$message_invalid.' <a href="contact.html">Return to form contact</a></p>'."\n"; 
				$err_formulaire = true;
			}
		}
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/04/2011, 00h12   #20
Invité régulier
 
Homme
Consultant en sécurité
Inscription : avril 2011
Messages : 47
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en sécurité
Secteur : Conseil

Informations forums :
Inscription : avril 2011
Messages : 47
Points : 6
Points : 6
Super, là apparemment cela fonctionne.

Cependant, je ne reçois rien à mon adresse mail... et l'expéditeur ne reçois rien non plus...

Est-ce parce-que je passe par MAMP pour backtester ? Ou... est-ce dû à autre chose ??
templari 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 00h36.


 
 
 
 
Partenaires

Hébergement Web