Visualizzazione risultati 1 fino 5 di 5

Discussione: Form mail invia campi vuoti usando un action ad un file php

  1. #1
    Guest

    Exclamation Form mail invia campi vuoti usando un action ad un file php

    Ciao a tutti,
    ho un problema con il mio sito e precisamante con la parte del form mail. Ho creato un form sulla mia pagina index_en.html e due pagine php, contact.php e config_email.php
    Quando compilo i campi nell'index_en.html la action mi manda al contact.php che con una funzione include('config_email.php') mi va a pescare i miei dati dove dovrebbe mandarmi la mail.
    Fino qua tutto funziona alla perfezione e la mail arriva senza problemi con la veste grafica che gli ho impostato, ma il problema è che i campi sono vuoti.
    Qualcuno mi potrebbe dare cortesemente una mano? Vi posto anche i miei codici così da capire un pò.

    Questo il file index_en.html:
    Codice HTML:
    <form action="contact.php" class="form-horizontal" role="form" data-animated="0" target="hidden" method="post" id="contact_form" enctype="text/plain">
    <div class="result"></div>
    <br> <b>* All the following fields are mandatory!</b>
    <div class="form-group">
    <div class="col-md-12 col-lg-6 contact-input">
    <label class="sr-only" for="nome">Name</label>
    <input type="text" class="form-control" id="nome" name="nome" placeholder="What’s your name? *" required />
    </div>
    <div class="col-md-12 col-lg-6 contact-input">
    <label class="sr-only" for="email">Email address</label>
    <input type="email" class="form-control" id="email" name="email" placeholder="And e-mail? *" required />
    </div>
    </div>
    <div class="col-md-12 contact-textarea">
    <label class="sr-only" for="messaggio">Message</label>
    <textarea class="form-control" id="messaggio" name="messaggio" placeholder="What would you like to tell us? *" rows="7" required ></textarea>
    </div>
    <div class="col-md-12 col-lg-6 comment-form-captcha">
    <img src="captcha.php" alt="Captcha"/>
    <br><input type="text" class="form-control form-captcha" name="code" id="code" placeholder="Write the code seen above! *" required />
    </div>
    <div class="form-group">
    <div class="col-md-12">					
    <button type="submit" name="" id="submit" value="SEND!" class="btn btn-hermes" onclick="myFunction()">SEND!</button>
    <script>
    function myFunction() {
        confirm("We received you email! Our office will get back to you ASAP. Thank you for contacting us!");
    }
    </script>
    <input type="reset" name="" id="reset" value="RESET" class="btn btn-hermes">
    </div>
    </div>
    </form>
    Questo il file contact.php:
    Codice PHP:
    <?php

    //Includo Variabili
    include('config_email.php');

    session_start();

    $nome = $_POST['nome'];
    $email = $_POST['email'];
    $messaggio = $_POST['messaggio'];
    $ip = $_SERVER['REMOTE_ADDR'];

    //Verifica antispam

    if($_POST['fred'] != "") {
    echo(
    '<p style="color: #000; font-size: 25px; font-weight: bold;">Sei uno spambot o stai usando tecniche di spam indesiderate, spiancenti ma ci siamo attrezzati. La mail non e stata inviata</p>');
    }

    else {

    //Invio la mail

    $to = $tua_email;
    $sbj = "Contact Form - $sito_internet";
    $msg = "
    <html>
    <head>
    <style type='text/css'>
    body{
    font-family:'Lucida Grande', Arial;
    color:#333;
    font-size:15px;
    }
    </style>
    </head>
    <body>
    <table width='600' border='0' cellspacing='0' cellpadding='5'>
    <tr>
    <td width='121' align='right' valign='baseline'><strong>Nome:</strong></td>
    <td width='459'>
    $nome</td>
    </tr>


    <tr>
    <td align='right' valign='baseline'><strong>Email:</strong></td>
    <td>
    $email</td>
    </tr>

    <tr>
    <td align='right' valign='baseline'><strong>Messaggio:</strong></td>
    <td>
    $messaggio</td>
    </tr>


    <tr>
    <td align='right' valign='baseline'><strong>IP Tracciato (per motivi di sicurezza):</strong></td>
    <td>
    $ip</td>
    </tr>

    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>

    <tr>
    <td>&nbsp;</td>
    <td><small>Powered by Me</small></td>
    </tr>

    </table>
    </body>
    </html>
    "
    ;

    $from = $email;
    $headers = 'MIME-Version: 1.0' . "\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n"; //In certi casi con aruba se non viene formattata eliminare il \r per i permessi come ho fatto in questo caso
    $headers .= "From: $from";

    mail($to,$sbj,$msg,$headers); //Invio mail principale.

    //Fine mail inviata a me

    //Inizio email di conferma
    $toClient = $email;
    $msgClient = "
    <html>
    <head>
    <style type='text/css'>
    body{
    font-family:'Lucida Grande', Arial;
    color:#333;
    font-size:15px;
    }
    </style>
    </head>
    <body>

    <h1>F4YL - Confrimation email</h1>
    <br />

    <h2>Thanks,
    $nome</h2>
    <br />

    <p>Thanks for contact us,
    $nome</p>
    <p>We received your email. We respond as soon as possible.</p>


    <br />
    <hr>

    <p>Thanks for contact us,
    $nome</p>
    <p>We received your email. We respond as soon as possible.</p>

    </body>
    </html>
    "
    ;
    $fromClient = $tua_email;
    $sbjClient = "Grazie, $nome ";
    $headersClient = 'MIME-Version: 1.0' . "\r\n";
    $headersClient .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headersClient .= "From: $fromClient";

    mail($toClient,$sbjClient,$msgClient,$headersClient); //mail inviata al cliente

    //Fine email di conferma

    //Resetto errori

    session_destroy();

    exit;

    }
    //fine else del controllo antispam

    ?>
    Mentre questo è il file config_email.php
    Codice PHP:
    <?php

    $tua_email
    = "mia_email_personal@mia_email_personale.com"; //mia email dove ricevo i dati dal form

    $sito_internet = "F4YL - Official";

    $grazie = "http://www.sito.it";

    ?>
    Sono giorni che ci sto a dietro ma non riesco ad andarne fuori, qualcuno può aiutarmi per favore?

    Grazie a tutti,
    Mattia

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,573

    Predefinito

    Ma in "contact.php" i valori arrivano correttamente? Hai provato a stamparli con una echo?

    Ciao!

  3. #3
    Guest

    Predefinito

    Questo mi arriva per email, è l'ultima prova che ho fatto:

    "Nome:
    Email:
    Messaggio:
    IP Tracciato (per motivi di sicurezza):101.164.205.97

    Powered by Me"

    Cioè mi arriva solo questo. Se io compilo il form e lo invio mi esce il popup di conferma ma i dati non mi arrivano... Sono anche nuovo di php e non ci capisco tantissimo. Perchè da come vedo il php aggancia l'html solo che essendo vuoto pensavo in un errore minimo dovuto alle virgolette o qualcosa. O magari altro ma che non riesco a capire!
    Come intendi stamparli con una echo?

  4. #4
    Guest

    Predefinito

    Fatto ragazzi.
    Ho risolto. Nell'html andava tolto enctype="text/plain".

    Ora tutto funziona!

  5. #5
    ilwebdidomenico non è connesso Neofita
    Data registrazione
    23-08-2015
    Messaggi
    1

    Predefinito

    Grazie ffyl, avevo il tuo stesso problema e mai avrei pensato che era semplicemente necessario rimuovere enctype="text/plain" nella <form>per far funzionare correttamente l'invio della mail. Grazie ancora.

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •