Formulaire qui envoie un mail avec plusieurs pièces jointes

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire qui envoie un mail avec plusieurs pièces jointes

Re: Formulaire qui envoie un mail avec plusieurs pièces jointes

par matthieu.r » 19 mai 2010, 14:27

Résolu.

Code : Tout sélectionner

if ($NomFichier_name!="") { //copy($NomFichier,"../upload/".$NomFichier_name); //chargement du fichier $uploaddir = '../upload/'; $uploadfile = $uploaddir . basename($NomFichier_name); //copy($NomFichier,"../upload/".$NomFichier_name); // if (move_uploaded_file($_FILES['NomFichier']['tmp_name'], $uploadfile)) { echo "Le premier fichier est valide, et à été téléchargé avec succès.\n"; } else { echo "Votre premier fichier est très probablement trop lourd. :\n"; } // $m->Attach( "../upload/".$NomFichier_name, "application/octet-stream" ); } if ($NomFichier2_name!="") { //copy($NomFichier,"../upload/".$NomFichier_name); //chargement du fichier $uploaddir = '../upload/'; $uploadfile = $uploaddir . basename($NomFichier2_name); //copy($NomFichier,"../upload/".$NomFichier_name); // if (move_uploaded_file($_FILES['NomFichier2']['tmp_name'], $uploadfile)) { echo "Le second fichier est valide, et à été téléchargé avec succès.\n"; } else { echo "Votre second fichier est très probablement trop lourd. :\n"; } // $m->Attach( "../upload/".$NomFichier2_name, "application/octet-stream" ); } if ($NomFichier3_name!="") { //copy($NomFichier,"../upload/".$NomFichier_name); //chargement du fichier $uploaddir = '../upload/'; $uploadfile = $uploaddir . basename($NomFichier3_name); //copy($NomFichier,"../upload/".$NomFichier_name); // if (move_uploaded_file($_FILES['NomFichier3']['tmp_name'], $uploadfile)) { echo "Le troisème fichier est valide, et à été téléchargé avec succès.\n"; } else { echo "Votre troisème fichier est très probablement trop lourd. :\n"; } // $m->Attach( "../upload/".$NomFichier3_name, "application/octet-stream" ); } $m->Send(); if ($NomFichier_name!="") { Unlink("../upload/".$NomFichier_name); } if ($NomFichier2_name!="") { Unlink("../upload/".$NomFichier2_name); } if ($NomFichier3_name!="") { Unlink("../upload/".$NomFichier3_name); } echo "$reponse"; ?>

Re: Formulaire qui envoie un mail avec plusieurs pièces jointes

par matthieu.r » 19 mai 2010, 10:08

Merci, j'étais donc sur la bonne voie, mais comme je l'ai dit, ça ne marchait pas. Je vais continuer à réessayer dans ce sens.

Re: Formulaire qui envoie un mail avec plusieurs pièces jointes

par Ryle » 18 mai 2010, 19:16

Il faut effectivement remplacer "NomFichier" par "NomFichier2" dans $_FILES['NomFichier'] ... après, il faut également voir à quoi correspond ta variable $NomFichier_name, et peut être l'adapter également :)

Formulaire qui envoie un mail avec plusieurs pièces jointes

par matthieu.r » 18 mai 2010, 19:00

Bonjour,

Cela fait maintenant trop longtemps que je lutte à faire marcher mon code, je n'arrive pas à trouver ma dernière erreur. Je requiert donc votre aide.

Le code que j'ai utilisé (ci après), à un formulaire avec une seule pièce jointe, formulaire que j'ai modifié.

Voici le http://www.phpcs.com/codes/FORMULAIRE-E ... 50607.aspx que j'ai voulu modifier et adapter à mes besoins.

Voici donc la partie des pièces jointes de mon form.

Code : Tout sélectionner

<tr><td>Vos documents:</td></tr> <input type="hidden" name="MAX_FILE_SIZE" value="100000"> <td><input name="NomFichier" type="file" size="16"></td></tr> <tr><td><input type="hidden" name="MAX_FILE_SIZE" value="100000"> <input name="NomFichier2" type="file" size="16"></td> <tr><td><input type="hidden" name="MAX_FILE_SIZE" value="100000"> <input name="NomFichier3" type="file" size="16"></td></tr>
La partie qui pose problème dans le php :

Code : Tout sélectionner

Message: $msg"; $m= new Mail; // create the mail $m->From( $email ); $m->To( $dest); $m->Subject( $subject ); $m->Body( $msg); // set the body if ($email1!="") { $m->Cc( $email1); } $m->Priority($priority) ; if ($NomFichier_name!="") { //copy($NomFichier,"../upload/".$NomFichier_name); //chargement du fichier $uploaddir = '../upload/'; $uploadfile = $uploaddir . basename($NomFichier_name); //copy($NomFichier,"../upload/".$NomFichier_name); // if (move_uploaded_file($_FILES['NomFichier']['tmp_name'], $uploadfile)) { echo "Le fichier est valide, et a été téléchargé avec succès. Voici plus d'informations :\n"; } else { echo "Attaque potentielle par téléchargement de fichiers. Voici plus d'informations :\n"; } // $m->Attach( "../upload/".$NomFichier_name, "application/octet-stream" ); } $m->Send(); if ($NomFichier_name!="") { Unlink("../upload/".$NomFichier_name); } echo "$reponse"; ?>
Alors j'ai essayé de répeter les parties en changeant le "NomFichier" avec "NomFichier2" et "NomFichier3", mais ça ne marche pas.

Que dois-je changer pour que ça marche ?

Merci beaucoup !