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 5 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 2 mesi fa
Gianni Tomasicchio
X 1 X
Effettua l'accesso o registrati per rispondere a questa domanda

Domande simili