Questo script dovrebbe permettermi di inviare un file alla casella mail predefinita, solo che la mail arriva senza l'allegato (oltre a mancare il nome e il testo predefinito dentro la mail).
Qualcuno può trovare l'errore? Grazie!
Questo è il form della pagina di invio (in .htm)
Codice:
<form action="richiesta.php" method="post" name="form1" id="form1" target="_self">
Nome: <input name="nome" type="text" id="nome" size="41" style="background-color: #EDEDED; border: thin groove #D6D6D6;"><br>
E-mail: <input type="text" name="email" id="email" size="41" style="background-color: #EDEDED; border: thin groove #D6D6D6;"><br>
<br>
<input name="all" type="file" id="all"><br><br>
<input type="reset" name="Submit" value="reset" style="background-color: #FF9933; color: #3C0000; border: thin double Black;">
<input type="submit" name="Submit2" value="invia" style="background-color: #669933; color: #FFFF99; border: thin solid Black;" onClick="MM_validateForm('nome','','R','mail','','RisEmail','oggetto','','R','messaggio','','R');return document.MM_returnValue">
</form>
Questo è il codice della pagina in php che gestisce l'invio:
Codice:
<?php
# recupero dati form
$nome = $_POST['nome'];
$email = $_POST['email'];
$messaggio = "In allegato il documento";
$oggetto = "Invio allegato";
$casella = "prova@prova.it"; # INSERIRE QUI LA CASELLA DI POSTA DOVE INVIARE LA MAIL
# verifica dati inseriti
if(($nome<>"")&&($email<>"")){
# intestazioni della mail
$intestazioni = "MIME-Version: 1.0\n";
$intestazioni .= "Content-Type: multipart/mixed; boundary=\"XX-1234DED00099A\"\n";
$intestazioni .= "Content-Transfer-Encoding: 7bit\n";
$intestazioni .= "From: $email\n";
# testo della mail
$msg = "--XX-1234DED00099A\n";
$msg .= "Content-Type: text/plain; charset=iso-8859-1\n";
$msg .= "Content-Transfer-Encoding: 7bit\n\r";
$msg .= $messaggio;
# allegato della mail
$fp=@fopen($all, "r");
if ($fp) {
$data = fread($fp,filesize($all));
$msg .= "\n--XX-1234DED00099A\n";
$msg .= "Content-Type: application/octet-stream;name=\"$all_name\"\n";
$msg .= "Content-Transfer-Encoding: base64\n";
$msg .= "Content-Disposition: attachment;filename=\"$all_name\"\n";
$allegato = base64_encode($data);
$msg .= "$allegato";
}
# invio del mail
$result = @mail($casella,$oggetto,$messaggio,$intestazioni,$all);
# controllo risultato
if($result){
# invio eseguito
echo "<p>Il tuo messaggio è stato inoltrato con successo!</p><p>Grazie!</p>";
}else{
# errore server
echo "<p>E' stato riscontrato un errore sul server.<br>Impossibile inviare il messaggio.</p><p>Riprova più tardi.</p>";
} end;
}else{
# avviso insufficienza dati
echo "<p>Non hai compilato tutti i campi del modulo!</p><p>Campi mancanti:</p>";
if($nome==""){ echo "Nome<br>";}
if($email==""){ echo "Indirizzo e-mail<br>";}
} end; ?>