1. <?php
  2. if(isset($_POST['Envoyer'])){$erreur="";
  3. // Nettoyage des entrées
  4. while(list($var,$val)=each($_POST)){if(!is_array($val)){$$var=strip_tags($val);}
  5. else{while(list($arvar,$arval)=each($val)){$$var[$arvar]=strip_tags($arval);}}}
  6. // Création du message
  7. if($erreur==""){
  8. $EmailDesti = MAIL_PERSO;
  9. $LeSujet = $data['Titre'];
  10. $LeMessageHTML = "<html></html>";
  11. //=====On filtre les serveurs qui présentent des bogues.
  12. if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $EmailDesti)){$passage_ligne = "\r\n";}else{$passage_ligne = "\n";}
  13. //=====Déclaration des messages au format texte et au format HTML.
  14. $message_html = $LeMessageHTML;
  15. //=====Création de la boundary.
  16. $boundary = "-----=".md5(rand());
  17. $boundary_alt = "-----=".md5(rand());
  18. //=====Définition du sujet.
  19. $sujet = $LeSujet;
  20. //=====Création du header de l'e-mail.
  21. $header = "From: ".$Fr_AdresseMail.$passage_ligne;
  22. $header.= "MIME-Version: 1.0".$passage_ligne;
  23. $header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
  24. //=====Création du message.
  25. $message = $passage_ligne."--".$boundary.$passage_ligne;
  26. $message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
  27. $message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
  28. //=====Ajout du message au format HTML.
  29. $message.= "Content-Type: text/html; charset=\"UTF-8\"".$passage_ligne;
  30. $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
  31. $message.= $passage_ligne.$message_html.$passage_ligne;
  32. //=====On ferme la boundary alternative.
  33. $message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
  34. $message.= $passage_ligne."--".$boundary.$passage_ligne;
  35. //=====Ajout de la pièce jointe.
  36. $extensions = array('.jpg', '.jpeg','.png','.bmp','.pdf','.txt');
  37. $taille_maxi = 10485760;
  38. $nbr_max_file = 10;
  39. $Fr_Photos = !empty($_FILES['Fr_Photos']) ? $_FILES['Fr_Photos'] : NULL;
  40. if(!in_array($extension, $extensions)) {$erreur.="<li>• Vous devez uploader un fichier de type jpg, jpeg, png, bmp ou pdf...</li>";}
  41. if($taille > $taille_maxi) {$erreur.="<li>• La taille maximale des fichiers ne doit pas dépasser 10Mo</li>";}
  42. if(count($Fr_Photos) > $nbr_max_file) {$erreur.="<li>• Trop de fichiers uploadés</li>";}
  43. if($Fr_Photos){
  44. foreach ($Fr_Photos as $fichier){
  45. $upload_type = $fichier['type'];
  46. $upload_file = $fichier['name'];
  47. $tmp_name = $fichier['tmp_name'];
  48. $extension = strrchr($upload_file, '.');
  49. $taille = filesize($tmp_name);
  50. $tmp_myname = file_get_contents($tmp_name);
  51. $attachement = chunk_split(base64_encode($tmp_myname));
  52. if (move_uploaded_file($tmp_name, $upload_file)) {
  53. $message.= 'Content-type:'.$upload_type.';name='.$upload_file.$passage_ligne;
  54. $message.= "Content-Transfer-Encoding: base64".$passage_ligne;
  55. $message.= "Content-Disposition: attachment; filename=".$upload_file.$passage_ligne;
  56. $message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;
  57. $message.= $passage_ligne."--".$boundary."--".$passage_ligne;
  58. }}}
  59. //=====Envoi de l'e-mail.
  60. if(mail($EmailDesti,$sujet,$message,$header)){$ok_mail="true";}else{$erreur.="<li>".$ERREUR_ERROR_1."</li>";}}}
  61. print_r ($_FILES);
  62. ?>
  63. <?php if($ok_mail=="true"){ echo $MESSAGE_VALID; }else{ ?>
  64. <form action="<?php echo $PHP_SELF ?>" method="post" enctype="multipart/form-data" name="Form">
  65. <?php if($erreur){ echo $MESSAGE_ERROR; } ?>
  66. <input name="Fr_Photos[]" id="Fr_Photos" type="file" multiple>
  67. <button class="btn btn-large btn-block btn-primary" name="Envoyer" type="submit"><?php echo $CONTACT_ENVOYER; ?></button>
  68. </form>
  69. <?php } ?>