• User Newbie

    Inserire campo per allegati in form contatti

    Salve a tutti,
    avrei bisogno cortesemente di un aiuto relativo al seguente form contatti, avrei necessità di un inserire un campo che permetta all'utente di sfogliare nel proprio hard disk, di allegare un file e trovarmelo poi nella mia posta mail.
    Qualche anima pia può darmi una mano.
    Allego file HTML del form:

    <h2>Modulo per informazioni e contatti<br />
    </h2>
    <form method="post" action="formInvio.php">
    <input type="hidden" name="require" value="email,nominativo,privacy" />
    <input type="hidden" name="contenitore" value="[email protected]" />
    <input type="hidden" name="invia_Dati" value="REMOTE_HOST,HTTP_USER_AGENT" />

          <tr>
            <div align="center">
              <table width="564" border="0">
                <tr>
                  <td width="134" height="28"><span class="Stile43"><span class="Stile60">Nome
                  e Cognome (*)</span></span></td>
                  <td width="414"><font face="Arial" size="3" color="#000000">
                  <input name="nominativo" type="text" id="nominativo" style="background-color: #ffffff; border-color: #333333" size="20" />
                  </font></td>
                </tr>
                <tr>
                  <td height="28"><span class="Stile39 Stile59"><span class="Stile43 Stile60">Email  a cui ricevere risposta (*)</span></span></td>
    

    <td><font face="Arial" size="3" color="#000000">
    <input type="text" name="email" size="20" style="background-color:; border-color:" />
    </font></td>
    </tr>
    <tr>
    <td height="28"><span class="Stile43 Stile60">Indirizzo</span></td>
    <td><font face="Arial" size="3" color="#000000">
    <input name="indirizzo" type="text" id="indirizzo" style="background-color:; border-color: #666666" size="20" />
    </font></td>
    </tr>
    <tr>
    <td height="28"><span class="Stile59"><span class="Stile43 Stile60">Città/Provincia</span></span></td>
    <td><font face="Arial" size="3" color="#000000">
    <input name="Città" type="text" id="Città" style="background-color:; border-color:" size="20" />
    </font></td>
    </tr>
    <tr>
    <td height="28"><span class="Stile43 Stile60">Telefono</span></td>
    <td><font face="Arial" size="3" color="#000000">
    <input name="Telefono" type="text" id="Telefono" style="background-color:; border-color:" size="20" />
    </font></td>
    </tr>
    <tr>
    <td height="76"><span class="Stile43 Stile60">Informazioni</span></td>
    <td><textarea name="Altre_info" cols="31" rows="4" id="Altre_info" style="background-color:; border-color:">Inserire richieste</textarea></td>
    </tr>
    <tr>
    <td height="146"><span class="Stile43 Stile60">Accetto il trattamento dei dati personali ()</span></td>
    <td><input type="checkbox" name="privacy" id="privacy" />
    <br />
    <textarea name="Privacy" cols="31" rows="7" readonly="readonly" id="Privacy" style="background-color: #CCCCCC; border-color:; color: #000000; font-family: Georgia, 'Times New Roman', Times, serif; font-style: oblique;">INFORMATIVA AI SENSI DELL'ART. 10, LEGGE N.675/1996 I dati che ci invierete tramite questo form, via email o telefonicamente permetteranno a ARTEVINUM di contattarVi e fornirVi una risposta alle Vostre domande. I dati verranno custoditi su supporti informatici e trattati nel pieno rispetto delle misure di sicurezza a tutela della Vostra riservatezza.
    I dati verranno usati per la finalità e con la modalità precedentemente indicata nel rispetto della Legge 675 del 31 Dicembre 1996.
    Vedi Tutela della Privacy</textarea></td>
    </tr>
    <tr>
    <td><span class="Stile43 Stile60">Codice di verifica antispam (
    ) </span></td>
    <td><img src="/securimage/securimage_show.php" alt="CAPTCHA Image" align="bottom" id="captcha" /><a href="#" onClick="document.getElementById('captcha').src = '/securimage/securimage_show.php?' + Math.random(); return false"><img src="securimage/images/refresh.gif" alt="refresh" border="0" /></a><br />
    <input type="text" name="captcha_code" size="10" maxlength="6" /></td>
    </tr>
    </table>
    <br />
    </div>
    </tr>
    <tr>
    <td><div align="center">

            </div>
                <br />
                <p align="center">
                  <input type="submit" />
                  <input type="reset" />
                </p>
              <hr />
                <p class="Stile43">I campi contrassegnati con <span class="Stile54">(*)</span> sono obbligatori<br />
                </p>
                <p class="Stile43">La compilazione di questo form non comporta nessun impegno di acquisto ma solo una risposta più rapida . </p></td>
          </tr>
    

    </form>

    e file formInvio.php

    <?php
    /include_once $_SERVER['DOCUMENT_ROOT'] . '/securimage/securimage.php';/
    include("securimage.php");
    $securimage = new Securimage();

    if ($securimage->check($_POST['captcha_code']) == false) {
    // the code was incorrect
    // handle the error accordingly with your other error checking

    // or you can do something really basic like this
    die('Attenzione codice captcha a 4 cifre non corretto premere il tasto Indietro e riprovare.');
    }
    ?>
    <?
    /*
    formail completo, è possibile aggiungere qualunque campo
    è sufficiente inserire le due pagine in un punto qualunque
    del proprio dominio.
    by linkbruttocane
    */

    //INIZIO PARAMETRI DA SETTARE OBBLIGATORIAMENTE
    /****************************************************************************************/
    // Il parametro $delay indica i secondi di ritardo impiegati
    // a riportare l'utente all'home page dopo che abbia
    // compilato correttamente il modulo

    $delay = "5";

    // Il parametro $url indica la pagina alla quale si viene
    // rimandati una volta compilato correttamente il modulo
    // io ho messo una homepage, ma potrebbe essere qualunque altra pagina

    $url = "miosito.it";

    // Il parametro $provenienza indica le possibili provenienze dei dati: indicare
    // il proprio dominio nella forma mostrata dall'esempio

    $provenienza = array ();

    // Il parametro $esclusioni vi permette di NON consentire
    // messaggi da un indirizzo mail specificato
    // sia appartenente ad un dominio, ovvero
    // 'tutte le mail che appartengono ad un dominio'
    // od anche a singoli account

    $esclusioni = array ('*@quellochetipare.com', '[email protected]', '[email protected]');

    //FINE PARAMETRI DA SETTARE OBBLIGATORIAMENTE
    /****************************************************************************************/

    $email = $_POST['email'];

    $versione_form = "stabile";

    function print_error($reason,$type = 0) {
    global $versione_form;
    build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet);
    if ($type == "missing") {
    ?>
    <body bgcolor='#FFFFFF'>
    <p align='center'><font face='Georgia, Times New Roman, Times, serif' color='#990000' size='+2'><br>
    Il modulo non puo'
    essere inviato per le seguenti ragioni</font></p>
    <br>
    <p align='center'><font face='Georgia, Times New Roman, Times, serif' size='2' color='#990000'>
    <?
    echo $reason."\n";
    ?>
    </font>
    <p align='center'><font face='Georgia, Times New Roman, Times, serif' size='+1' color='#990000'>Premere il pulsante <input type="button" value="indietro" onClick="history.back();">
    e riprovare.</font></p>
    <?
    } else { // every other error
    ?>
    Il modulo non puo' essere inviato per le seguenti ragioni:<p align='center'>
    <?
    }
    echo "<br><br>\n";

    exit;
    }

    function check_banlist($esclusioni, $email) {
    if (count($esclusioni)) {
    $allow = true;
    foreach($esclusioni as $banned) {
    $temp = explode("@", $banned);
    if ($temp[0] == "*") {
    $temp2 = explode("@", $email);
    if (trim(strtolower($temp2[1])) == trim(strtolower($temp[1])))
    $allow = false;
    } else {
    if (trim(strtolower($email)) == trim(strtolower($banned)))
    $allow = false;
    }
    }
    }
    if (!$allow) {
    print_error("Stai utilizzando un <b>indirizzo email escluso.</b>");
    }
    }

    function check_referer($provenienza) {
    if (count($provenienza)) {
    $found = false;
    $temp = explode("/",getenv("HTTP_REFERER"));
    $referer = $temp[2];
    for ($x=0; $x < count($provenienza); $x++) {
    if (eregi ($provenienza[$x], $referer)) {
    $found = true;
    }
    }
    if (!getenv("HTTP_REFERER"))
    $found = false;
    if (!$found){
    print_error("Provieni da un <b>dominio non autorizzato.</b>");
    error_log("[FormMail.php] Illegal Referer. (".getenv("HTTP_REFERER").")", 0);
    }
    return $found;
    } else {
    return true; //
    }
    }
    if ($provenienza)
    check_referer($provenienza);

    if ($esclusioni)
    check_banlist($esclusioni, $email);

    function parse_form($array) {
    // build reserved keyword array
    $reserved_keys[] = "required";
    $reserved_keys[] = "redirect";
    $reserved_keys[] = "email";
    $reserved_keys[] = "require";
    $reserved_keys[] = "contenitore";
    $reserved_keys[] = "titolo";
    $reserved_keys[] = "bgcolor";
    $reserved_keys[] = "text_color";
    $reserved_keys[] = "link_color";
    $reserved_keys[] = "vlink_color";
    $reserved_keys[] = "alink_color";
    $reserved_keys[] = "title";
    $reserved_keys[] = "missing_fields_redirect";
    $reserved_keys[] = "invia_Dati";
    if (count($array)) {
    while (list($key, $val) = each($array)) {

         $reserved_violation = 0;
         for ($ri=0; $ri<count($reserved_keys); $ri++) {
            if ($key == $reserved_keys[$ri]) {
               $reserved_violation = 1;
            }
         }
      
         if ($reserved_violation != 1) {
            if (is_array($val)) {
               for ($z=0;$z<count($val);$z++) {
                  $content .= "$key: $val[$z]\n";
               }
            } else {
               $content .= "$key: $val\n";
            }
         }
      }
    

    }
    return $content;
    }

    function mail_it($content, $titolo, $email, $contenitore) {
    mail($contenitore, $titolo, $content, "From: $email\r\nReply-To: $email\r\nX-Mailer: DT_formmail");
    }

    function build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet) {
    if ($style_sheet)
    echo "<LINK rel=STYLESHEET href="$style_sheet" Type="text/css">\n";
    if ($title)
    echo "<title>$title</title>\n";
    if (!$bgcolor)
    $bgcolor = "#FFFFFF";
    if (!$text_color)
    $text_color = "#80000";
    if (!$link_color)
    $link_color = "#0000FF";
    if (!$vlink_color)
    $vlink_color = "#FF0000";
    if (!$alink_color)
    $alink_color = "#000088";
    if ($background)
    $background = "background="$background"";
    echo "<body bgcolor="$bgcolor" text="$text_color" link="$link_color" vlink="$vlink_color" alink="$alink_color" $background>\n\n";
    }

    $contenitore_finale = split(',',$contenitore);
    for ($i=0;$i<count($contenitore_finale);$i++) {
    $contenitore_to_test = trim($contenitore_finale*);
    if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $contenitore_to_test)) {
    print_error("<b>Occorre un indirizzo email valido per continuare ($contenitore_to_test) </b>");
    }
    }

    if ($required)
    $require = $required;

    if ($require) {

    $require = ereg_replace( " +", "", $require);
    $required = split(",",$require);
    for ($i=0;$i<count($required);$i++) {
    $string = trim($required*);

      if((!(${$string})) || (!(${$string}))) {
       
         if ($missing_fields_redirect) {
            header ("Location: $missing_fields_redirect");
            exit;
         }
         $require;
         $missing_field_list .= "Il campo relativo a <b>$required*</b> deve essere compilato <br>\n\n";
      }
    

    }

    if ($missing_field_list)
    print_error($missing_field_list,"missing");
    }

    if (($email) || ($EMAIL)) {
    $email = trim($email);
    if ($EMAIL)
    $email = trim($EMAIL);
    if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$", $email)) {
    print_error("il suo <b>indirizzo email</b> non risulta essere valido");
    }
    $EMAIL = $email;
    }

    $content = parse_form($HTTP_POST_VARS);

    if ($invia_Dati) {
    $invia_Dati = ereg_replace( " +", "", $invia_Dati);
    $splitta_Dati = split(",",$invia_Dati);
    $content .= "\n------ variabili utente ------\n";
    for ($i=0;$i<count($splitta_Dati);$i++) {
    $string = trim($splitta_Dati*);
    if ($splitta_Dati* == "REMOTE_HOST")
    $content .= "REMOTE HOST: ".$REMOTE_HOST."\n";
    else if ($splitta_Dati* == "REMOTE_USER")
    $content .= "REMOTE USER: ". $REMOTE_USER."\n";
    else if ($splitta_Dati* == "REMOTE_ADDR")
    $content .= "REMOTE ADDR: ". $REMOTE_ADDR."\n";
    else if ($splitta_Dati* == "HTTP_USER_AGENT")
    $content .= "BROWSER: ". $HTTP_USER_AGENT."\n";
    }
    }

    if (!$titolo)
    $titolo = "Modulo dal sito";

    mail_it(stripslashes($content), stripslashes($titolo), $email, $contenitore);

    if ($redirect) {
    header ("Location: $redirect");
    exit;
    } else {
    print "<body bgcolor='#FFFFFF'>

    <p align='center'><font face='Georgia' size='4' color='#800000'>Grazie per averci
    contattato.</font></p><p align='center'><font face='Georgia' size='4' color='#800000'>Riceverete
    risposta all'indirizzo da voi indicato $email<br><br>...Ritorno automatico alla Home page in corso....</font></p><meta http-equiv='refresh' content='$delay; url=$url'>

    <p align='center'> </p>

    </body>
    ";
    echo "<br><br>\n";

    exit;
    }

    // <---------- fine ----------> //
    ?>

    Grazie in anticipo a tutti