• User

    Problemino form contatti

    Ciao ragazzi avrei un problema. Io dopo aver costruito la struttura html del form, avevo puntato il form verso il file php in questo modo:
    <form id="contactform" method="post" action="xxx.xxx/jj/file.php">
    il file aveva questa struttura:


    <?php
    //Inserisci il tuo indirizzo email
    $mailTo = '[email protected]';

    $name = htmlspecialchars($_POST['name']);
               $object = htmlspecialchars($_POST['object']);
    $mailFrom = htmlspecialchars($_POST['email']);
    $siteurl = htmlspecialchars($_POST['site']);
    $message_text = htmlspecialchars($_POST['message']);
    $subject = 'Email da Form Contatti Pentaimmobiliare.com';
    $headers = 'Content-type: text/html; charset=UTF-8' . "\r\n";
    $headers .= 'From: '.$mailFrom;
    
    $message =  "<html>
                    <head>
                        <title> $subject </title>
                    </head>
                <body>
                    <p>----------------------------------------</p>
                    <b>Nome Utente:</b> $name<br />
                    <b>Oggetto:</b>  $object<br />
                    <b>e-Mail:</b> $mailFrom<br />
                    <b>Testo della richiesta:</b><br />
                    <p>$message_text</p>
                    <p>----------------------------------------</p>
                </body>
                </html>";
    
    
    if (mail($mailTo, $subject, $message, $headers))
        echo "email inviata!";
    else {
        echo "Errore";
    }
    

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

    Problema 1: La mail viene inviata correttamente ma non riesco a far comparire nel messaggio che ricevo la variabile oggetto del messaggio:

    La mail che ricevo è di questa struttura:
    Nome Utente: massimo
    Oggetto: non risulta nulla
    e-Mail: email
    Testo della richiesta: messaggio

    Problema 2 (più grave): Una volta che il cliente clicca Submit viene mandato alla pagina xxx.xxx/jj/file.php in cui compare "email inviata" anzichè rimanere nella pagina del form.

    Spero di essermi spiegato bene, attendo un vostro aiuto, grazie mille ragazzi!


  • ModSenior

    Ciao Massimo_Vitali,
    per quanto riguarda il problema 1 devi incollare anche il codice del form.
    Per il problema 2 devi invece unire i 2 file in maniera tale che la pagina contente il form si occupi anche dell'elaborazione all'invio.


  • User

    Grazie della risposta. Per la domanda 1, ecco il codice del form:

    <!-- Contact Form Start //-->
    <div id="formcontact" class="half-page">
    <form id="contactform" method="post" action=sito.zzz/cartella/js/inviaemail.php">
    <fieldset>
    <div id="error"></div>
    <label for="name">Nome:</label>
    <input type="text" name="name" id="name" />

                        <label for="subject">Oggetto:</label>
                        <input type="text" name="subject" id="subject" />                        
                        
                        <label for="email">Email:</label>
                        <input type="text" name="email" id="email" />
                        
                        <label for="question">Messaggio:</label>
                        <textarea name="message" id="message" cols="30" rows="10"></textarea>
                        
                        <input type="submit" name="submit" id="submit" value="" />
                    </fieldset>
                </form>
        </div>
        <!-- Contact Form End //-->
    

    Per quanto riguarda la domanda 2 potresti spiegarti meglio? in che senso unire i due file? scusami non sono molto ferrato 😞 attendo vostre risposte:)


  • ModSenior

    Devi modificare il codice php in quanto il titolo si trova in $_POST['subject'] non in $_POST['object']. Per quanto riguarda la seconda domanda, l'action deve essere la pagina stessa in maniera tale da poter poi gestire la cosa come volevi tu. È ovvio che comunque devi studiare le basi di php per poter fare qualsiasi cosa.


  • User

    @Thedarkita said:

    Devi modificare il codice php in quanto il titolo si trova in $_POST['subject']Per quanto riguarda la seconda domanda, l'action deve essere la pagina stessa in maniera tale da poter poi gestire la cosa come volevi tu. È ovvio che comunque devi studiare le basi di php per poter fare qualsiasi cosa.
    Ma in questo modo come è possibile che l'email sia inviata se l'action rimanda alla pagina stessa? Devo aggiungere qualche riga di codice?


  • ModSenior

    Le 2 pagine devono praticamente essere unite, la pagina con il form deve anche capire quando il form è stato inviato ed inviare l'email.


  • User

    Ma in che senso unite? 😞


  • ModSenior

    Intendo in un unico file sia il codice del form che quello che si occupa di inviare l'email.


  • User

    Ma tutto in un file html o php? scusami non riesco a seguirti 😞


  • ModSenior

    Se usi codice php deve essere su un file php. Ti consiglio comunque di studiare un pò php, altrimenti anche per operazioni banali come questa, non riesci a capire molto.


  • User

    ho risolto con un banale redirect, comunque grazie delle informazioni.. vedrò di applicarmi 🙂