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)
Questo è il codice della pagina in php che gestisce l'invio: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>
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; ?>![]()

LinkBack URL
About LinkBacks



