Tom's Guide > Forum > Programmation > Formulaire php+mail pièce jointe

Formulaire php+mail pièce jointe

Forum Programmation : Formulaire php+mail pièce jointe

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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 :

 


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.     Nom : <input name="nom" size="30" maxlength="50" type="text">
  14.     <br /><br />
  15.     Prénom : <input name="prenom" size="30" maxlength="50" type="text"><br /><br />
  16.     E-mail : <input name="mail" size="30" maxlength="50" type="text"><br /><br />
  17.     Commentaires :
  18.     <textarea name="commentaires" cols="30" rows="6" wrap="soft"></textarea><br /><br />
  19.     Fichier : <input name="scan" size="40" maxlength="60" type="file"><br /><br />
  20.     <input name="bouton" value="Envoyer" type="submit">
  21.     </form>
  22. </body>
  23. </html>



 

et le code php

 

Code :

 


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


Message édité par OmaR le 20-02-2009 à 04:39:59
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Salut,

Pour pouvoir envoyer des fichiers, il faut ajouter enctype="multipart/form-data" à ta balise <form>.

Répondre à OmaR
Tom's Guide > Forum > Programmation > Formulaire php+mail pièce jointe
Aller à :

Il y a 1437 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens