Se connecter avec
S'enregistrer | Connectez-vous

Formulaire php+mail pièce jointe

Dernière réponse : dans Programmation

Bonjour,

Je suis occupé de mettre en place un fomulaire html qui fonctionne très bien dans lequel, les invités doivent y laisser des données et une pièce jointe.
Quand je click sur envoie les données sont bien transférér vers le code php pour l'envoie du mail.

Mais le fichier joint n'est pas transféré .

Pouvez-vous m'aider ?

la variable $scan est le fichier à transférer.

Je vous joint le code html et php

HTML:
Code :



  1. <html>
  2. <!-- Date de création: 06/02/2008 -->
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  5. <title></title>
  6. <meta name="description" content="">
  7. <meta name="keywords" content="">
  8. <meta name="author" content="Usager non enregistre">
  9. <meta name="generator" content="monsoft"
  10. </head>
  11. <body>
  12. <form method="post" action="envoimail.php" name="formulaire">
  13.  
  14. Nom : <input name="nom" size="30" maxlength="50" type="text">
  15.  
  16. <br /><br />
  17. Prénom : <input name="prenom" size="30" maxlength="50" type="text"><br /><br />
  18.  
  19. E-mail : <input name="mail" size="30" maxlength="50" type="text"><br /><br />
  20.  
  21. Commentaires :
  22. <textarea name="commentaires" cols="30" rows="6" wrap="soft"></textarea><br /><br />
  23.  
  24. Fichier : <input name="scan" size="40" maxlength="60" type="file"><br /><br />
  25.  
  26. <input name="bouton" value="Envoyer" type="submit">
  27.  
  28. </form>
  29. </body>
  30. </html>




et le code php

Code :



  1. <?php
  2.  
  3. $nom = $_POST['nom'];
  4. $prenom = $_POST['prenom'];
  5. $mail = $_POST['mail'];
  6. $commentaires= $_POST['commentaires'];
  7. $scan=$_post['scan'];
  8.  
  9.  
  10. //=====Déclaration des messages au format texte et au format HTML
  11. $message_txt ="Nom : ";
  12. $message_html = "<html><head></head><body><b>Données pour la demande d'accès</b>,<br><br> <b>Nom :</b> $nom <br> <b>Prenom :</b> $prenom <br> <b>Email: </b> $mail </body></html>";
  13. //==========
  14.  
  15. //=====Lecture et mise en forme de la pièce jointe
  16. $fichier = fopen($scan, "r");
  17. $attachement = fread($fichier, filesize($scan));
  18. $attachement = chunk_split(base64_encode($attachement));
  19. fclose($fichier);
  20. //==========
  21.  
  22. //=====Création de la boundary
  23. $boundary = "-----=".md5(rand());
  24. $boundary_alt = "-----=".md5(rand());
  25. //==========
  26.  
  27. //=====Définition du sujet
  28. $sujet = "Hey mon ami !";
  29. //=========
  30.  
  31. //=====Création du header de l'e-mail
  32. $header = "From: \"WeaponsB\"<.....@skynet.be>\n";
  33. $header.= "Reply-to: \"WeaponsB\" <......@skynet.be>\n";
  34. $header.= "MIME-Version: 1.0\n";
  35. $header.= "Content-Type: multipart/mixed;\n boundary=\"$boundary\"\n";
  36. //==========
  37.  
  38. //=====Création du message
  39. $message = "\n--".$boundary."\n";
  40. $message.= "Content-Type: multipart/alternative;\n boundary=\"$boundary_alt\"\n";
  41. $message.= "\n--".$boundary_alt."\n";
  42. //=====Ajout du message au format texte
  43. $message.="Content-Type: text/plain; charset=\"ISO-8859-1\"\n";
  44. $message.="Content-Transfer-Encoding: 8bit\n";
  45. $message.= $message_txt."\n";
  46. //==========
  47.  
  48. $message.= "\n--".$boundary_alt."\n";
  49.  
  50. //=====Ajout du message au format HTML
  51. $message.="Content-Type: text/html; charset=\"ISO-8859-1\"\n";
  52. $message.="Content-Transfer-Encoding: 8bit\n";
  53. $message.= $message_html."\n";
  54. //==========
  55.  
  56. //=====On ferme la boundary alternative
  57. $message.= "\n--".$boundary_alt."--\n";
  58. //==========
  59.  
  60.  
  61.  
  62. $message.= "\n--".$boundary."\n";
  63.  
  64. //=====Ajout de la pièce jointe
  65. $message.= "Content-Type: application/pdf;\n name=\"$scan\"\n";
  66. $message.= "Content-Transfer-Encoding: base64\n";
  67. $message.= "Content-Disposition: attachment;\n filename=\"$scan\"\n";
  68. $message.= "\n".$attachement."\n\n";
  69. $message.= "\n--".$boundary."--\n";
  70. //==========
  71. //=====Envoi de l'e-mail
  72. mail("......@hotmail.com",$sujet,$message,$header);
  73.  
  74. //==========
  75. ?>


Lassé par la pub ? Créez un compte
Lassé par la pub ? Créez un compte
Tom's guide dans le monde