vi prego aiutatemi, ormai sto impazzendo:berto: , non riesco ad uscirne.
Sto cercando di allegare più di un file a questo form di invio e mail, ma non riesco a trovare la fine, con un allegato funziona, ma con 2 no!!!!!!![]()
Il form è questo:
<form action="formmail.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="destinatario" value="davidebeccaro@gmail.com">
<table border="0">
<tr>
<td>Tua Mail:</td>
<td><input type="text" name="mittente" value="" /></td>
</tr>
<tr>
<td>Oggetto:</td>
<td><input type="text" name="oggetto" value="" /></td>
</tr>
<tr>
<td>Messaggio:</td>
<td><textarea cols="20" rows="4" name="messaggiob"></textarea>
</textarea></td>
</tr>
<tr>
<td>Messaggio:</td>
<td><textarea cols="20" rows="4" name="messaggioc"></textarea>
</textarea></td>
</tr>
<tr>
<td>Messaggio:</td>
<td><textarea cols="20" rows="4" name="messaggiod"></textarea>
</textarea></td>
</tr>
<tr>
<td>Allega file:</td>
<td><input type="file" name="allegatoa" /></td>
</tr>
<tr>
<td>Allega file:</td>
<td><input type="file" name="allegatob" /></td>
</tr>
<tr>
<tr>
<td colspan="2">
<table>
<tr>
<td><input type="submit" value="Invia" /></td>
<td><input type="reset" value="cancella"></td>
</tr>
</table></tr>
</table>
</form>
La pagina php invece è:
<?php
// Recupero il valore dei campi del form
$destinatario = $_POST['destinatario'];
$mittente = $_POST['mittente'];
$oggetto = $_POST['oggetto'];
$messaggioa = $_POST['messaggiob'];
$messaggiob = $_POST['messaggioc'];
$messaggioc = $_POST['messaggiod'];
// Valorizzo le variabili relative all'allegato
$allegatoa = $_FILES['allegatoa']['tmp_name'];
$allegatoa_type = $_FILES['allegatoa']['type'];
$allegatoa_name = $_FILES['allegatoa']['name'];
$allegatob = $_FILES['allegatob']['tmp_name'];
$allegatob_type = $_FILES['allegatob']['type'];
$allegatob_name = $_FILES['allegatob']['name'];
// Creo 2 variabili che riempirò più avanti...
$headers = "From: " . $mittente;
$msg = "";
// Verifico se il file è stato caricato correttamente via HTTP
// In caso affermativo proseguo nel lavoro...
if (is_uploaded_file($allegatoa))
{
if (is_uploaded_file($allegatob))
{
// Apro e leggo il file allegato
$filea = fopen($allegatoa,'rb');
$dataa = fread($filea, filesize($allegatoa));
fclose($filea);
$fileb = fopen($allegatob,'rb');
$datab = fread($fileb, filesize($allegatob));
fclose($fileb);
// Adatto il file al formato MIME base64 usando base64_encode
$dataa = chunk_split(base64_encode($dataa));
$datab = chunk_split(base64_encode($datab));
// Genero il "separatore"
// Serve per dividere, appunto, le varie parti del messaggio.
// Nel nostro caso separerà la parte testuale dall'allegato
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// Aggiungo le intestazioni necessarie per l'allegato
$headers .= "\nMIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed;\n";
$headers .= " boundary=\"{$mime_boundary}\"";
// Definisco il tipo di messaggio (MIME/multi-part)
$msg .= "This is a multi-part message in MIME format.\n\n";
// Metto il separatore
$msg .= "--{$mime_boundary}\n";
// Questa è la parte "testuale" del messaggio
$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$msg .= "Content-Transfer-Encoding: 7bit\n\n";
$msg .= "A_$messaggioa-----B_$messaggiob-----C_$messaggioc" . "\n\n";
// Metto il separatore
$msg .= "--{$mime_boundary}\n";
// Aggiungo l'allegato al messaggio
$msg .= "Content-Disposition: attachment;\n";
$msg .= " filename=\"{$allegatoa_name}\"\n";
$msg .= "Content-Transfer-Encoding: base64\n\n";
$msg .= $dataa . "\n\n";
$msg .= "Content-Disposition: attachment;\n";
$msg .= " filename=\"{$allegatob_name}\"\n";
$msg .= "Content-Transfer-Encoding: base64\n\n";
$msg .= $datab . "\n\n";
// chiudo con il separatore
$msg .= "--{$mime_boundary}--\n";
}
else
{
$msg = "A_$messaggioa-----B_$messaggiob-----C_$messaggioc" ;
}
// Invio la mail
if (mail($destinatario, $oggetto, $msg, $headers))
{
echo "
Mail inviata con successo!</p>";
}else{
echo "
Errore!</p>";
}
}
?>
Vi prego aiutatemi ne ho estremo bisogno.
AIUTO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!