Invio di un allegato via mail da form con php

Buonasera,

Ho realizzato un form che da la possibilità all'utente di caricare oltre ai suoi dati personali anche 3 allegati e fino qua tutto ok. Il problema è che non so dove e come scrivere il codice che mi da la possibilità di inviare la mail con in allegato i 3 file che mi caricano sul form.

Sapete darmi una mano? 

Il link del form: http://www.ronzanisamuele.it/prenricetta.htm

Il codice php: 

<?php
//....
$nome = $_POST['nome'];
$cognome= $_POST['cognome'];
$numero= $_POST['numero'];
$email=$_POST["email"];
$errore="";
if(empty(trim($nome))){$errore.="Non hai inserito il nome\n";}
if(empty(trim($cognome))){$errore.="Non hai inserito il cognome\n";}
if(empty(trim($numero))){$errore.="Non hai inserito il prefisso e il numero di telefono\n";}
$email=filter_var($email,FILTER_SANITIZE_EMAIL);
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){$errore.="Email non valida o vuota\n";}
if(empty(trim($farmaco1))){$errore.="Inserisci almeno un farmaco e il suo dosaggio\n";}
if(empty(trim($formulazione1))){$errore.="Non hai inserito la formulazione del farmaco\n";}
if(empty(trim($confezioni1))){$errore.="Non hai inserito il numero di confezioni\n";}
if($errore !=""){
    echo $errore;
    //e rimandi al form  con un link o in automatico
}else{
    $to = "info@ronzanisamuele.it";
    $body = "Contenuto del modulo:\n\n";
    $body .= "Nome: " . trim(stripslashes($_POST["nome"])) . "\n";
    $body .= "Cognome: " . trim(stripslashes($_POST["cognome"])) . "\n";
    $body .= "Numero di telefono: " . trim(stripslashes($_POST["prefisso"])) . " " . $numero . "\n";
    $body .= "E-mail: " . trim(stripslashes($_POST["email"])) . "\n\n";
    $body .= "1) Farmaco e Dosaggio: " . trim(stripslashes($_POST["farmaco1"])) . "\n";
    $body .= "1) Formulazione: " . trim(stripslashes($_POST["formulazione1"])) . "\n";
    $body .= "1) Confezioni: " . trim(stripslashes($_POST["confezioni1"])) . "\n\n";
    $body .= "2) Farmaco e Dosaggio: " . trim(stripslashes($_POST["farmaco2"])) . "\n";
    $body .= "2) Formulazione: " . trim(stripslashes($_POST["formulazione2"])) . "\n";
    $body .= "2) Confezioni: " . trim(stripslashes($_POST["confezioni2"])) . "\n\n";
    $body .= "3) Farmaco e Dosaggio: " . trim(stripslashes($_POST["farmaco3"])) . "\n";
    $body .= "3) Formulazione: " . trim(stripslashes($_POST["formulazione3"])) . "\n";
    $body .= "3) Confezioni: " . trim(stripslashes($_POST["confezioni3"])) . "\n\n";
    $body .= "4) Farmaco e Dosaggio: " . trim(stripslashes($_POST["farmaco4"])) . "\n";
    $body .= "4) Formulazione: " . trim(stripslashes($_POST["formulazione4"])) . "\n";
    $body .= "4) Confezioni: " . trim(stripslashes($_POST["confezioni4"])) . "\n\n";
    $body .= "5) Farmaco e Dosaggio: " . trim(stripslashes($_POST["farmaco5"])) . "\n";
    $body .= "5) Formulazione: " . trim(stripslashes($_POST["formulazione5"])) . "\n";
    $body .= "5) Confezioni: " . trim(stripslashes($_POST["confezioni5"])) . "\n";
    // INTESTAZIONI SUPPLEMENTARI
    $headers = "From: Modulo utenti<modulo@sito.it>";
    // INVIO DELLA MAIL
    //togli il silent
    if(mail($to, $subject, $body, $headers)) { // SE L'INOLTRO È ANDATO A BUON FINE...
        echo "La mail è stata inoltrata con successo.";
    } else {// ALTRIMENTI...
        echo "Si sono verificati dei problemi nell'invio della mail.";
    }
    //e rimandi dove vuoi  con un link o in automatico
}
//....
?>
inviato 3 mesi fa
samuelson
X 0 X

La funzione mail di PHP non si presta ad utilizzi complessi ed ha alcune limitazioni. 

Ci sono diverse librerie in grado di superare questi limiti, tra cui ti segnalo PHPMailer.

risposto un mese fa
Gianni Tomasicchio
X 1 X
Effettua l'accesso o registrati per rispondere a questa domanda

Domande simili