Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    5

    Aito per trovare errore in codice per invio form

    Ciao, è il mio primo post qui da voi e quindi ne approfito per salutare tutti !

    Avrei bisogno di chiedervi una mano per verificare l'errore presente in questo codice PHP per inviare un form-mail.

    premetto che non capisco nulla di PHP....

    Ho semplicemente riadattato un codice che ho trovato in rete, per inviare le informazioni del mio form.
    Il problema è che nel modulo che mi arriva via email compare anche il testo del pulsante submit di invio.

    Questo è che riporto sotto è un'esempio dei dati che mi arrivano via email quando qualcuno compila il mio form on-line

    Modulo inviato il 16/06/2011 alle ore 02:09:49 - Riepilogo dati:
    Regione: lombradia
    Provincia: milano
    Nome: pippo
    Cognome: pluto
    E-mail: pippo@pluto.it
    Telefono: 333333333
    Descrizione: mi serve un informazione....
    Privacy: on
    Button: Invia la tua richiesta Questo è il testo incriminato che non ci dovrebbe essere, è infatti il nome del pulsante submit denominato "invia la tua richiesta" . Non so perchè me la mette nel messaggio.
    Numero IP: 123.456.789


    Allego sotto il codice PHP che consente l'ivio del form...vi chiedo gentilemnte di aiutarmi, ho fatto mille tentativi (a caso) e non so più cosa tentare, potreste per cortesia verificare la presenza di errori ?


    <?php


    //Destinatario della e-mail//
    $destinatario = "info@mio-sito.it";


    //indirizzo email del mittente - Campo From//
    $nome_mittente = "$email";

    //Oggetto del messaggio//
    $oggetto_email = "Modulo inviato dal mio sito";


    //Campi che vengono inviati//
    $messaggio .= "Regione: $regione\n";
    $messaggio .= "Provincia: $provincia\n";
    $messaggio .= "Nome: $nome\n";
    $messaggio .= "Cognome: $cognome\n";
    $messaggio .= "e-mail: $e-mail\n";
    $messaggio .= "Telefono: $telefono\n";
    $messaggio .= "Descrizione: $descrizione\n";
    $messaggio .= "Privacy: $privacy\n";


    //Pagina di ringraziamento//
    $pagina_grazie = "http://www.pagina-grazie.it";

    //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";

    //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");
    }
    ###################################

    ########### 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");

    }

    ?>


    Ci sono sicuramente delle parti nel codice PHP che possono essere eliminate (soprattutto nell'ultima parte) in quanto fanno riferimento a controlli sulla compilazione del form che però ho già eliminato nella prima parte del codice in quanto i controllo li fa già il form realizzato con spry



    Ciao grazie mile

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    5
    Se dovesse servire allego anche il codice html relativo al form che ho creato con DreamWeaver e spry

    <form id="modulo" name="modulo_richieste" method="post" action="invia_modulo.php">


    Inserisci la tua Regione*<span id="regione">
    <label for="text1"></label>
    <input type="text" name="regione" id="regione" tabindex="10" />


    <span class="textfieldRequiredMsg">Campo Obbligatorio</span><span class="textfieldInvalidFormatMsg">Formato non valido.</span></span> </p>


    Inserisci la tua Provincia*<span id="sprytextfield2">

    <label for="text2"></label>
    <input type="text" name="provincia" id="provincia" tabindex="20" />


    <span class="textfieldRequiredMsg">Campo Obbligatorio</span><span class="textfieldInvalidFormatMsg">Formato non valido.</span></span> </p>


    Inserisci il tuo Nome*<span id="nome">
    <label for="text3"></label>
    <input type="text" name="nome" id="nome" tabindex="30" />


    <span class="textfieldRequiredMsg">Campo Obbligatorio</span><span class="textfieldInvalidFormatMsg">Formato non valido.</span></span></p>


    Inserisci il tuo Cognome* <span id="sprytextfield4">
    <label for="text4"> </label>
    <input type="text" name="cognome" id="cognome" tabindex="40" />


    <span class="textfieldRequiredMsg">Campo Obbligatorio</span><span class="textfieldInvalidFormatMsg">Formato non valido.</span></span></p>


    Inserisci la tua e-mail*<span id="email">
    <label for="text6"></label>
    <input type="text" name="e-mail" id="e-mail" tabindex="50" />


    <span class="textfieldRequiredMsg">Formato non valido.</span><span class="textfieldInvalidFormatMsg">Formato non valido.</span></span></p>


    Inserisci il tuo numero di telefono*<span id="telefono">
    <label for="text5"></label>
    <input type="text" name="telefono" id="telefono" tabindex="60" />


    <span class="textfieldRequiredMsg">Campo Obbligatorio</span><span class="textfieldInvalidFormatMsg">Formato non valido.</span></span></p>


    Inserisci una breve descrizione dell'inervento*<span id="descrizione">
    <label for="textarea1"></label>
    <textarea name="descrizione" id="descrizione" cols="45" rows="5" tabindex="70" style="width:300px"></textarea>


    <span class="textareaRequiredMsg">Campo Obbligatorio</span></span></p>


    <span id="privacy">
    Acconsento al trattamento dei dati personali*
    <input type="checkbox" name="privacy" id="privacy" tabindex="80" />


    <label for="checkbox1"></label>
    <span class="checkboxRequiredMsg">Effettuate una selezione</span></span></p>


    </p>



    <label for="Invia la tua richiesta"></label>
    <input type="submit" name="button" id="button" value="Invia la tua richiesta" tabindex="90" />
    </p>


    </p>
    </form>

  3. #3
    Probabilmente la soluzione piu' semplice e' togliere l'attributo "name" dall'input type="submit".

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    5
    Grande !!! funziona !!!

    Sei stato gentilissimo.

    Scusa se approffito ancora ma ho appena imparto a fare i primi passi con l'html e di PHP proprio non so niente di niente ma ho necesità di mandare velocemnte on-line il sito su cu sto lavorando..., non è che potresti dare ancora un'occhiata ed evidenziarmi le parti superflue della parte in PHP ? vorrei fare le cose al meglio ma proprio non so dove mettere le mani.

    Grazie mille

    ciao

  5. #5
    Se vuoi fare le cose per bene devi studiare e imparare, soprattutto se lo fai per lavoro.

    Dare consigli volentieri, fare il tuo lavoro per te gratis anche no grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    5
    Originariamente inviato da k.b
    Se vuoi fare le cose per bene devi studiare e imparare, soprattutto se lo fai per lavoro.

    Dare consigli volentieri, fare il tuo lavoro per te gratis anche no grazie
    Grazie lo stesso per l'aiuto, comunque mi hai frainteso, non lo faccio per lavoro e tantomeno voglio far lavorare gli altri al posto mio...non credevo fosse cosi impegnativo per uno che ci capisce, pensavo ti bastesse un minuto.

    Ciao garzie

  7. #7
    Io lo farei completamente diverso e soprattutto userei una libreria per l'invio dei email cosi' da evitare rischi di header injection e problemi di compatibilita'. Inoltre manca qualsiasi controllo sui dati in ingresso, insomma per fare una cosa fatta bene ci vuole del tempo.

    Pero' se non e' un lavoro professionale, puo' bastare il fatto che funzioni.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    5
    Ok ho capito...

    per l'header injction mi sono andato a leggere di cosa si tratta e mi sa che è un bel problema, per i controlli sui dati di ingresso (non so se intendo la stessa cosa che intendi tu) il form l'ho realizzato con dreamweaver e spry e i controlli sui campi (obbligo di inserimento dati e validità dei formati) me li fa spry...intendevi questo ?

    ciao grazie

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    5
    Per l'header injection, sono andato a riprendere il codice originale da cui ho preso spunto e ho trovato questa sezione che senza sapere cos'era ho rimosso dal mio codice, credendo non servisse

    ########### 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;

    }

    }



    Credo che sia la parte per proteggersi dall'injection, me lo puoi per favore confermare ?


    grazie

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.