1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
|
//PREMIER FICHIER.
<? $nbFile = 3; ?>
<html>
<body>
<form action="mail.php" method="POST" enctype="multipart/form-data" name="formulaire">
<br><br>
<table style="border:1px solid #000000" align="center">
<tr>
<td colspan="2" class="en-tete">Envoyer vos informations concernant le produit</td>
</tr>
<tr>
<td colspan="2">
<textarea name="message"></textarea>
</td>
</tr>
<? for($i=0;$i<$nbFile;$i++){ ?>
<tr>
<td>Fichier image <? echo $i+1; ?> :</td>
<td><input type="file" name="fichier<? echo $i; ?>" value="">
</tr>
<? } ?>
<tr>
<td align="center" colspan="2"><input type="submit" name="action" value="Envoyer"></td>
</tr>
</table>
<input type="hidden" name="nbfile" value="<? echo $nbFile; ?>">
</form>
</body>
</html>
//FICHIER MAIL.
//$filename : chemin du fichier.
function get_extension($filename){
$parts = explode('.',$filename);
$last = count($parts) - 1;
$ext = $parts[$last];
return $ext;
}
if($_SERVER['REQUEST_METHOD'] == 'POST'){ //Détecte si c'est le post provient d'un POST.
$isConform = false;
$attachment = array();
$arrNameFile = array();
$arrSource = array();
$arrExtension = array();
$arrType = array();
$arrInfoManu = array();
$arrExtensionCTRL = array('jpg','jpeg','bmp','psd','png','gif','tif','tiff');
$boundary = "-----=".md5(uniqid(rand()));
$extensionTemp = '';
$file = '';
$attachment = '';
$destinataire = 'mail destinataire';
$from = 'votre mail';
$reponse = 'votre mail réponse';
$sujet = 'Votre sujet';
$repertoire = 'tmpimg'; //Répertoire ou ce trouverons les fichiers attachées.
$fp = null;
$type = 'text/plain';
$message = trim($_POST['message']);
if($_POST['action'] == 'Envoyer'){
for($i=0;$i<$_POST['nbfile'];$i++){ //Boucle sur le nombre de champs de type file
$extensionTemp = get_extension($_FILES['fichier'.$i]['name']); // Récupère l'extension du fichier
if($_FILES['fichier'.$i]['name'] != ''){ //Détecte si il y a eu un fichier d'envoyé.
if(in_array(strtolower($extensionTemp), $arrExtensionCTRL)){ //Regarde si l'extension est valide.
$arrNameFile[$i] = $_FILES['fichier'.$i]['name']; //Nom du fichier
$arrSource[$i] = $_FILES['fichier'.$i]['tmp_name']; //Fichier temporaire :: contenu.
$isConform = true; //Il est donc conforme.
}else{
$isConform = false; //Il n'est pas conforme
}
}
}
}
//Redirection dans le cas ou il y a une extension non valide.
if($isConform == false){
header('Location:page_erreur.php?erreur=true');
exit();
}
//Boucle sur le nombre de fichier valide.
for($i=0;$i<count($arrNameFile);$i++){
copy($arrSource[$i], $repertoire.'/'.$arrNameFile[$i]); //Copie le fichier dans une zone précise du disque
$arrExtension[$i] = strtolower(get_extension($arrNameFile[$i])); //récupère l'extension
if($arrExtension[$i] == 'gif') $arrType[$i] = 'image/gif'; //gif
else if($arrExtension[$i] == 'bmp') $arrType[$i] = 'image/bmp'; //bmp
else if($arrExtension[$i] == 'png') $arrType[$i] = 'image/png'; //png
else if($arrExtension[$i] == 'psd') $arrType[$i] = 'image/psd'; //psd
else if($arrExtension[$i] == 'jpg' || $arrExtension[$i] == 'jpeg') $arrType[$i] = 'image/jpeg'; //jpg
else if($arrExtension[$i] == 'tif' || $arrExtension[$i] == 'tiff') $arrType[$i] = 'image/tiff'; //tif
}
//----------------------------------
// Construction de l'entête
//----------------------------------
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";
$msg = "Je vous informe que ceci est un message au format MIME 1.0.\r\n";
$msg .= "--$boundary\r\n";
$msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .="===================VOTRE MESSAGE===================\r\n\r\n";
$msg .= $message;
$msg .= "\r\n";
for($i=0;$i<count($arrNameFile);$i++){
$file = $repertoire.'/'.$arrNameFile[$i];
$fp = fopen($file, 'rb');
$attachment = fread($fp, filesize($file));
fclose($fp);
$attachment = chunk_split(base64_encode($attachment));
$msg .= "--$boundary\r\n";
$msg .= "Content-Type: ".$arrType[$i]."; \r";
$msg .= "name=\"".$arrNameFile[$i]."\"\r\n";
$msg .= "Content-Transfer-Encoding: base64\r\n";
$msg .= "Content-Disposition: inline;\r\n filename=\"".$arrNameFile[$i]."\"\r\n";
$msg .= $attachment . "\r\n";
$msg .= "\r\n";
$msg .= "\r\n\r\n";
unlink($file);
}
$msg .= "--$boundary--\r\n";
if(mail($destinataire, $sujet , $msg,"Reply-to: $reponse\r\nFrom: $from\r\n".$header)){
echo "OK";
}else{
echo "ERREUR";
}
}
?> |
Partager