Aide formulaire php pièce jointe

Résolu/Fermé
azerto00 Messages postés 12 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 3 octobre 2010 - 5 mars 2009 à 12:19
azerto00 Messages postés 12 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 3 octobre 2010 - 8 mars 2009 à 22:56
Bonjour,
J'ai récement trouver un formulaire avec envoi de pièce jointe qui fonctionne, je voudrais maintenant le perfectionner en proposant l'envoi de 5 pièce jointe sauf que .... je sais pas ce qu'il faut rajouter en php , je connais le php mais pas du tout les expressions pour ce qui est traitement d'un fichier.

Voila ma page index.htm qui contient le formulaire html :
<form name="contact" method="post" action="contactok.php" enctype="multipart/form-data">
Nom :<input type="text" name="nom" size="20"></p>
  <p>Email<input type="text" name="mail" size="20"></p>
  <p>Message<input type="text" name="message" size="20"></p>

<input type=file size=40 name="attach">
<input type=file size=40 name="attach2">

  <p>&nbsp;</p>
  <p><input type="submit" value="Submit" name="B1"><input type="reset" value="Reset" name="B2"></p>
</form>


ET maintenant la page php qui traite les informations :

<?
	
	// ADRESSE DU DESTINATAIRE
	$to="xxxxxx@gmail.com";

//
	
	// SUJET DU MESSAGE
	$sujet=".Message.";

	// ENTETES
	$entetes="From:$nom $prenom<info@coco-photocop.fr>\r\n";
	
	// MESSAGE
	$msg.="\nNom : $nom\n";
	$msg.="E mail : $mail\n";
	$msg.="\nMessage :\n\n$message";
	
	$msg = stripslashes($msg); 
	
	
	
	if (is_uploaded_file($attach)) {
    $file = fopen($attach, "r");
    $contents = fread($file, $attach_size);
    $encoded_attach = chunk_split(base64_encode($contents));
    fclose($file);

   $entetes.= "MIME-version: 1.0\n";
   $entetes.= "Content-type: multipart/mixed; ";
   $entetes.= "boundary=\"Message-Boundary\"\n";
   $entetes.= "Content-transfer-encoding: 7BIT\n";

    $body_top = "--Message-Boundary\n";
    $body_top .= "Content-type: text/plain; charset=US-ASCII\n";
    $body_top .= "Content-transfer-encoding: 7BIT\n";
    $body_top .= "Content-description: Mail message body\n\n";

    $msg .= "\n\n--Message-Boundary\n";
    $msg .= "Content-type: $attach_type; name=\"$attach_name\"\n";
    $msg .= "Content-Transfer-Encoding: BASE64\n";
    $msg .= "Content-disposition: attachment; filename=\"$attach_name\"\n\n";
    $msg .= "$encoded_attach\n";
    $msg .= "--Message-Boundary--\n";
  }
	
$msg = $body_top.stripslashes($msg);	

	if (mail($to,$sujet,$msg,$entetes))
	{


Voila je sais pas comment traiter le 2eme fichier <input type=file size=40 name="attach2">
A voir également:

2 réponses

azerto00 Messages postés 12 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 3 octobre 2010 1
8 mars 2009 à 22:56
UP! avec modification car une partie de la réponse trouvé ...
Bonjour, j'ai un code php trouvé sur internet que je souhaiterai améliorer.
Pour comprendre, je cherche à faire un formulaire avec envoi de plusieurs pièces jointe.
LE code marche pour l'envoi d'un fichier, (si c'est une image elle est incorporé dans le coprs du message)
Je souhaite ajouter la possibilité d'envoyer une 2eme pièce jointe.

Il doit y avoir une erreur de syntaxe car la 1ere pièce jointe est inclus dans le mail que je recoi mais la seconde c'est comme si elle existait pas ....


PHP:
if (is_uploaded_file($attach)) {
$file = fopen($attach, "r");
$contents = fread($file, $attach_size);
$encoded_attach = chunk_split(base64_encode($contents));
fclose($file);

$msg .= "\n\n--Message-Boundary\n"; //
$msg .= "Content-type: $attach_type; name=\"$attach_name\"\n";
$msg .= "Content-Transfer-Encoding: BASE64\n";
$msg .= "Content-disposition: attachment; filename=\"$attach_name\"\n\n";
$msg .= "$encoded_attach\n";
$msg .= "--Message-Boundary--\n";

}

if (is_uploaded_file($attach2)) {
$file2 = fopen($attach2, "r");
$contents2 = fread($file2, $attach2_size);
$encoded_attach2 = chunk_split(base64_encode($contents2));
fclose($file2);

$msg .= "\n\n--Message-Boundary\n"; //
$msg .= "Content-type: $attach2_type; name=\"$attach2_name\"\n";
$msg .= "Content-Transfer-Encoding: BASE64\n";
$msg .= "Content-disposition: attachment; filename=\"$attach2_name\"\n\n";
$msg .= "$encoded_attach2\n";
$msg .= "--Message-Boundary--\n";

}

JE pense que je avez compris que les 2 input file sont nommées :
- attach
- attach2
Merci d'avance !
1
azerto00 Messages postés 12 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 3 octobre 2010 1
6 mars 2009 à 14:05
up
0