Formulaire qui envoie un mail avec plusieurs pièces jointes

matthieu.r
Invité n'ayant pas de compte PHPfrance

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 !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

matthieu.r
Invité n'ayant pas de compte PHPfrance

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.

matthieu.r
Invité n'ayant pas de compte PHPfrance

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 &agrave; &eacute;t&eacute; t&eacute;l&eacute;charg&eacute; avec succ&egrave;s.\n"; } else { echo "Votre premier fichier est tr&egrave;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 &agrave; &eacute;t&eacute; t&eacute;l&eacute;charg&eacute; avec succ&egrave;s.\n"; } else { echo "Votre second fichier est tr&egrave;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&egrave;me fichier est valide, et &agrave; &eacute;t&eacute; t&eacute;l&eacute;charg&eacute; avec succ&egrave;s.\n"; } else { echo "Votre trois&egrave;me fichier est tr&egrave;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"; ?>