Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Non Invia Allegati

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    60

    Non Invia Allegati

    salve a tutti,
    ho visionato mille post prima di scriverne uno nuovo.
    Non so come sbloccarmi da questa situazione.

    Ho creato in php un form dove do la possibilità di caricare da remoto un file.
    Fino a qui tutto bene.. il problema è che nella mail arriva tutto corretto tranne l'allegato nel senso che sulla voce relativa ad "allegati" mi scrive a monitor il nome del file ma non me lo invia realmente.

    Cioè se nella casella allegati della form, inserisco un file di nome pippo.pdf
    nella mail mi arriva la stringa:
    "Allegati: pippo.pdf" ma senza il reale pdf da visionare.

    Sotto inserisco il codice usato nel caso in cui qualcuno scovi la magagna!!

    ------------------ FORM IN HTML ----------------------------------

    <form name="modulo" method="post" action="inviamail_business.php">



    <div align="center">
    <table border="0" width="80%">
    <tr>
    <td colspan="2" class="testo"><span class="Stile1">*
    dato obbligatorio</span></td>
    </tr>
    <tr>
    <td align="right"><font color="#FF0000" face="Verdana">*</font><font face="Verdana" color="#000000">
    Nome Cognome:</font></td>
    <td><input type="text" name="nome" size="28"></td>
    </tr>
    <tr>
    <td align="right"><font color="#FF0000" face="Verdana">*</font><font face="Verdana" color="#000000">
    E-Mail:</font></td>
    <td><input type="text" name="email" size="28"></td>
    </tr>
    <tr>
    <td align="right"><font face="Verdana" color="#000000">Recapito Telefonico:</font></td>
    <td><input type="text" name="telefono" size="28"></td>
    </tr>
    <tr>
    <td align="right"><font color="#FF0000" face="Verdana">*</font>[/b] <font face="Verdana" color="#000000">Città di residenza:</font></td>
    <td><input type="text" name="citta" size="28"></td>
    </tr>
    <tr>
    <td align="right"><font color="#FF0000" face="Verdana">*</font>
    <font face="Verdana" color="#000000">Qualifica:</font></td>
    <td><input type="text" name="qualifica" size="28"></td>
    </tr>
    <tr>
    <td align="right"><font class="Stile1">*</font>
    <font face="Verdana" color="#000000">Allega il Curriculum:</font></td>
    <td>


    <input name="curriculum" type="file" size="20"></td>


    </tr>
    </table>
    <table border="0" width="80%">
    <tr>
    <td align="center"><font color="#000000" face="Verdana">
    Specializzaioni e Passioni:

    <textarea name="note" rows="3" cols="45">

    </textarea>
    </font></td>
    </tr>
    <tr>
    <td align="center">


    <span class="testo">Con riferimento alla legge675/96 autorizzo il trattamento dei miei dati personali:</span>

    <font class="testo2">Accetti le condizioni?: SI
    <input type="radio" name="trattamento_dati" value="accetto" checked>
    NO <input type="radio" name="trattamento_dati" value="non_accetto">
    </font></td>
    </tr>
    </table>


    <font color="#000000" face="Arial">
    <input type="submit" value="Invia">




    </font></div>
    </form>

    ------------------------------------------------

    ------------------ PAG DI RISPOSTA PHP -------------------------

    <?php
    $email=$_POST['email'];

    //(1) indirizzo email del destinatario del modulo
    $destinatario = "vbsdesign@gmail.com";

    //(2) indirizzo email del mittente, campo FROM
    // non toccare se desiderate che l'indirizzo email inserito nel modulo sia
    // riportato nel campo DA del messaggio che sarà ricevuto.
    // Se invece desiderate un campo fisso annullare la prima riga e abilitare
    // la seconda inserendo la dicitura desiderata (per annullare mettere //
    // all'inizio della prima riga e per abilitare togliere // dalla seconda riga)
    $nome_mittente = "$email";
    // $nome_mittente = "Dal Modulo";

    //(3) oggetto del messaggio
    $oggetto_email = "Curriculum per Business";

    //(4) se si vogliono rendere tutti i campi NON OBBLIGATORI impostare su "y".
    // (valori possibili: "y" e "n")
    $all_free = "n";

    //(5) se avete messo "n" al punto (4) inserire tra virgolette, separati
    // da virgola, i nomi dei campi da rendere OBBLIGATORI
    // Esempio: $campi_req = array("nome","telefono","via");
    $campi_req = array("nome","email");

    //(6) controllo validità del campo email. (valori possibili: "y" e "n")
    $obbligo_email = "y";

    //(7) obbligare l'utente ad accettare le condizioni.
    // (valori possibili: "y" e "n")
    $accetta_condizioni = "n";

    //(8) URL della pagina di ringraziamento
    $pagina_grazie = "grazie.html";

    //(9) URL della pagina errore campi vuoti
    $pagina_error_empty = "errore_campi_vuoti.html";

    //(10) URL della pagina errore email
    //$pagina_error_email = "http://www.forestpuntocasa.com/errore_email.html";

    //(11) URL della pagina errore condizioni non accettate
    $pagina_error_condizioni = "errore_condizioni.html";

    //(12) URL della pagina errore invio non autorizzato (mancanza di referer)
    //$pagina_error_referer = "http://www.forestpuntocasa.com/errore_referer.html";

    #######################################
    # FINE IMPOSTAZIONI DA CONFIGURARE #
    #######################################

    //ora e data
    $ora = date ("H:i:s");
    $data = date ("d/m/Y");

    //intestazione email che arriva al destinatario
    $corpo = "
    Modulo inviato il $data alle ore $ora
    Riepilogo dati:\n\n";


    ########### CODICI ###########

    //variabili per rendere lo script compatibile anche con la versione PHP 4.2 e maggiori
    if(!isset($_SERVER) OR !$_SERVER OR !is_array($_SERVER) OR count(array_diff($_SERVER, $HTTP_SERVER_VARS))){
    $_POST = &$HTTP_POST_VARS;
    }

    //prende IP ADDRESS
    if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){

    if ($_SERVER["HTTP_X_FORWARDED_FOR"] == "") {

    $ipnumb = getenv("REMOTE_ADDR");

    }else {

    $ipnumb = getenv("HTTP_X_FORWARDED_FOR");

    }

    } else {

    $ipnumb = getenv("REMOTE_ADDR");
    }
    ###################################

    //controllo referer
    if(empty($_SERVER["HTTP_REFERER"])){

    header ("Location: $pagina_error_referer");
    exit();

    }

    ########### CONTROLLO DEI CAMPI ###########
    $control_campi = 0;

    if($all_free != "y"){

    foreach($_POST as $key => $valore){

    if(in_array($key,$campi_req)){

    if(trim($valore) == ""){

    $control_campi++;

    }

    }

    }

    } else {

    $control_campi = 0;

    }

    ########### CONTROLLO EMAIL ###########
    $control_email = 0;

    if($obbligo_email == "y"){

    if(isset($_POST['email'])){

    if(!eregi("^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9_-])+.)+[a-z]{2,6}$", $_POST['email'])){

    $control_email++;

    }

    } else {

    $control_email = 0;

    }

    }

    ########### CONTROLLO CONDIZIONI ###########
    $control_condizioni = 0;

    if($accetta_condizioni == "y"){

    if(isset($_POST['trattamento_dati']) && $_POST['trattamento_dati'] == "accetto"){

    $control_condizioni = 0;

    } else {

    $control_condizioni ++;

    }

    }

    ########### INVIO EMAIL ###########
    if($control_campi == 0){

    if($control_email == 0){

    if($control_condizioni == 0){

    foreach($_POST as $key => $valore){

    $key = ucfirst(stripslashes(trim($key)));
    $valore = stripslashes(trim($valore));
    $key = str_replace("_"," ",$key);

    if(trim($valore) == "") $valore = "Non compilato";

    $corpo .= $key .": ". $valore ."\n\n";

    }

    $corpo .= "Numero IP: $ipnumb"."\n";

    $corpo .= "_________________________________________________ ___________ \n\n

    ";


    // invio e-mail
    // Header Mail
    $headmail.="From: $nome_mittente <$nome_mittente>\n";
    $headmail.="Return-Path: $nome_mittente\n";
    $headmail.="User-Agent: Php Mail Function\n";
    $headmail.="X-Accept-Language: en-us, en\n";
    $headmail.="MIME-Version: 1.0\n";
    $headmail.="X-Priority: 1 (Highest)\n";
    $headmail.="Content-Type: text/plain; charset=ISO-8859-1; format=flowed\n";
    $headmail.="Content-Transfer-Encoding: 7bit\n";

    ini_set('sendmail_from', "$destinatario");
    mail("$destinatario", "$oggetto_email", "$corpo", "$headmail");

    header ("Location: $pagina_grazie");

    } else {

    header ("Location: $pagina_error_condizioni");

    }

    } else {

    header ("Location: $pagina_error_email");

    }

    } else {


    header ("Location: $pagina_error_empty");

    }

    ?>
    --------------------------------------------------

    per favore mi aiutate???
    "a nessuno è dato sapere i segreti di un'armatura..nemmeno a chi la indossa"

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    1. Il tuo form non e' multipart/form-data
    2. Non ho letto tutto il codice, ma una semplice ricerca in pagina con la parola file mi dice che non usi da nessuna parte il file stesso
    3. Non vedo codifiche base64, chunk e roba simile relativa agli allegati da nessuna parte.

    Conclusione: Il codice tutto e' una magagna. Ti consiglio di usare una classe gia' fatta come phpmailer che ti gestisca gli allegati, e naturalmente di leggere qualche tutorial in merito.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    41
    Anche io ho lo stesso problema!
    Il form, checchè se ne dica, secondo me è molto buono e molto semplice da configurare, e con meno cose da gestire rispetto al PhpMailer-Fe....
    scaricato da qui:
    http://www.ctnet.it/manuale-formphp.php
    e permette ottime personalizzazioni e un captcha che funziona (ho provato il PhpMailer-Fe che va benissimo per gli allegati ma che il captcha proprio non si riesce a far funzionare!)

    Però c'è il problema appunto che non si riesce a far uploadare i files!
    x bubi1, hai cercato male, nel form che cecronny ha postato c'è l'input type= file
    manca, è vero, il multipart/form-data nel form....ma anche facendolo la situazione non cambia e gli allegati non vengono inviati!

    Qualcuno sa aiutarci? Cosa bisogna modificare in questo codice per poter inviare anche allegati?
    Grazie

  4. #4
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Originariamente inviato da magnotta
    x bubi1, hai cercato male, nel form che cecronny ha postato c'è l'input type= file
    Si, ma nella parte php non c'e' nessun codice che richiami FILES, che e' l'array superglobale che contiene i file caricati.

    Ho parlato di ricerche nel codice perche' non avevo nessuna voglia a leggermelo tutto, e dal fatto che manchino parole come FILES, base64, chunk - possiamo stare certi che questo script senza grosse modifiche' non inviera' allegati.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    41
    diamine, non ne riesco ad uscire allora

    -Questo form php è perfetto, customizzabile, ha il captcha e va benissimo ma non gestisce gli upload!!!

    - Il phpformmail-fe anche è perfetto, customizzabile, ha gli upload ma non gestisce il captcha!!!!
    http://www.trademarkitaly.it/php/sample_forms/form.html
    (qui è un mero upload del formail php-fe dell'esempio incluso nello zip, ovviamente con abilitata nel file di config l'opzione per il worxturing, che sarebbe il captcha...e come vedete non visualizza nulla)

    se è troppo lunga aggiungere la feature mancante ad uno dei due succitati form...
    ....esiste almeno un form mail php customizzabile, tipo questi, che abbia sia il captcha che l'upload files funzionanti?
    grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.