IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème envoi formulaire (syntaxe ?)


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    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 : 20
    Points
    20
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    <?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(''',"'",$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, $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...

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourrais-tu être plus précis que "ça ne fonctionne pas" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $err_formulaire = (IsEmail($email)) ? false : true;
    pourrait être écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $err_formulaire = !IsEmail($email);
    Je suis fervent 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 de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur 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…

  4. #4
    Membre à l'essai
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    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 : 20
    Points
    20
    Par défaut
    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...

  5. #5
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Soit tu changes dans ton HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" value="submit" name="submit" tabindex="10" />
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" value="submit" name="envoi" tabindex="10" />
    Soit tu changes dans ton PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['envoi']))
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    Je suis fervent 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 de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur 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…

  6. #6
    Membre à l'essai
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    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 : 20
    Points
    20
    Par défaut
    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.


  7. #7
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Je suis fervent 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 de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur 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…

  8. #8
    Membre à l'essai
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    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 : 20
    Points
    20
    Par défaut
    HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    <?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 ??????


  9. #9
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    mail() ne s'utilise pas comme ça.
    Lis la doc

    (indice : les paramètres ne sont pas bons)
    Je suis fervent 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 de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur 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…

  10. #10
    Membre à l'essai
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    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 : 20
    Points
    20
    Par défaut
    Arghh...

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    // 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(''',"'",$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']))
    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

  11. #11
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    La fonction mail() de PHP doit s'écrire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    $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>';
    };
    Je suis fervent 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 de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur 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…

  12. #12
    Membre à l'essai
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    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 : 20
    Points
    20
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    <?php
     
    	// 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 ?

  13. #13
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    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().
    Je suis fervent 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 de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur 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…

  14. #14
    Membre à l'essai
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    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 : 20
    Points
    20
    Par défaut
    Non en fait c'était pas "object" mais "subject" ; j'ai rectifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    <?php
     
    	// 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... ?

  15. #15
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Y a toujours quelques erreurs dans ton script (c'est à se demander comment il ne plante pas ):

    1-
    Ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message = str_replace(''',"'",$message);
    à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message = str_replace('\'',"'",$message);
    car sinon PHP ne comprend pas que tu veuilles attraper une apostrophe.

    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Je suis fervent 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 de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur 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…

  16. #16
    Membre à l'essai
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    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 : 20
    Points
    20
    Par défaut
    1. Dans mon code j'ai mis ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $message = str_replace(''',"'",$message);
    $message = str_replace('’',"'",$message);
    Ce qui, au final, me donne cela avec ta ligne supplémentaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    <?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('’',"'",$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>';
    }}
    		
    }; 
    
    ?>

  17. #17
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    <?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;
    			}
    		}
    	}
    Je suis fervent 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 de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur 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…

  18. #18
    Membre à l'essai
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    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 : 20
    Points
    20
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <?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;
    			}
    		}
    	}
    ?>

  19. #19
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    <?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;
    			}
    		}
    Je suis fervent 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 de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur 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…

  20. #20
    Membre à l'essai
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    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 : 20
    Points
    20
    Par défaut
    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 ??

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème envoi formulaire sur touche entrer
    Par mike1310 dans le forum VBA Access
    Réponses: 7
    Dernier message: 05/03/2009, 16h19
  2. [HTML] Problème envoi formulaire
    Par abisirine dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 29/12/2007, 20h45
  3. Réponses: 11
    Dernier message: 10/07/2006, 16h17
  4. Problème envoi de formulaire
    Par metallien dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 03/02/2006, 13h13
  5. [Mail] Problème envoi formulaire par mail
    Par Nicos77 dans le forum Langage
    Réponses: 5
    Dernier message: 10/11/2005, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo