Visualizzazione dei risultati da 1 a 7 su 7

Discussione: form di contatto

  1. #1

    form di contatto

    Ciao a tutti,
    ho scaricato un template con questo codice html per il classico form di contatto:

    <div class="container small">
    <form method="post" action="#">
    <div class="row half">
    <div class="6u"><input type="text" placeholder="Nome" /></div>
    <div class="6u"><input type="text" placeholder="Azienda" /></div>


    </div>
    <div class="row half">
    <div class="6u"><input type="text" placeholder="Email" /></div>
    <div class="6u"><input type="text" placeholder="Tel." /></div>
    <div class="12u"><textarea name="message" placeholder="Messaggio"></textarea></div>
    </div>
    <div class="row">
    <div class="12u">
    <ul class="actions">
    <li><input type="submit" class="button" value="Invia" /></li>
    <li><input type="reset" class="button alt" value="Cancella" /></li>
    </ul>
    </div>
    </div>
    </form>
    </div>


    ho trovato questo codice PHP, che teoricamente dovrebbe andare e potrebbe adattarsi al form html sopra, se modificato?

    <?php $name = $_POST['name'];
    2 $email = $_POST['email'];
    3 $message = $_POST['message'];
    4 $formcontent="From: $name \n Message: $message";
    5 $recipient = "emailaddress@here.com<script type="text/javascript">
    6 /* <![CDATA[ */
    7 (function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("scr ipt");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.f romCharCode(c);}s=document.createTextNode(s);l.par entNode.replaceChild(s,l);}}catch(e){}})();
    8 /* ]]> */
    9 </script>";
    10 $subject = "Contact Form";
    11 $mailheader = "From: $email \r\n";
    12 mail($recipient, $subject, $formcontent,$mailheader) or die("Error!");
    13 echo "Thank You!";
    14 ?>



    se si pò adattare, indicatemi come per favore....vi ringrazio anticipatamente.

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    56
    nel form devi mettere in action="" al posto del '#' una pagina *.php dove inserirai il codice PHP che hai scaricato.

    in secondo luogo devi mettere in tutti gli input type anche il name="". Ad esempio dove viene messa l'email andrai a scriverlo così:

    codice HTML:
    <div class="6u"><input type="text" placeholder="Email" name="email" /></div>
    in name devi mettere "email" perchè nel $_POST[] viene richiamato 'email'.

    Tutto chiaro?

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    E ti anticipo, se le email non arriveranno e ad occhio potrebbero non arrivare, cerca sul forum, perché se ne è parlato tantissime volte.
    Ti mancano tutti gli header (ad eccezione di From, che però non basta) e ormai quasi tutti i mailserver se non vedono gli header cestinano o mettono l'email nello spam.

  4. #4
    Grazie per le risposte.
    Mi potreste dare un link per la questione "header" nei moduli di contatto? non sono riuscito a trovare qualcosa che potesse risolvermi il problema, e non ho ben capito cosa siano.
    Altrimenti potreste darmi qualche dritta in merito agli header sul mio form php?

    <div id="container">
    <form action="contatti.php" method="post" id="contatti">
    <p>
    <label for="nome">Nome</label>
    <input type="text" name="nome" id="nome" style="width:250px"/>
    </p>
    <p>
    <label for="email">Email</label>
    <input type="text" name="email" id="email" style="width:250px"/>
    </p>
    <p>
    <label for="messaggio">Messaggio</label>
    <textarea name="messaggio" id="messaggio" style="width:250px;height:180px">
    </textarea>
    </p>
    <br />
    <p><input type="submit" name="submit" id="submit" value="Invia" /></p>

    </form>






    <?php
    if(isset($_POST['submit']))
    {
    $nome= trim(strip_tags($_POST['nome']));
    $nome= trim(strip_tags($_POST['azienda']));
    $email= trim(strip_tags($_POST['email']));
    $nome= trim(strip_tags($_POST['tel']));
    $messaggio= trim(strip_tags($_POST['messaggio']));
    //email del ricevente

    $header = "From: $email\n" . "Reply-To: $email\n";
    $subject = "Oggetto del messaggio";
    $email_to = "xxxxxxxxx@gmail.com ";

    if(mail($email_to, $subject ,$messaggio ,$header ))
    {
    echo "mail inviata con successo";
    }
    else
    {
    echo "Problemi nell'invio della mail";
    }
    }
    ?>
    Ultima modifica di markrenton89; 10-10-2014 a 12:06

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    56
    ti posso consigliare questi due:

    Codice PHP:
    $header  "MIME-Version: 1.0\r\n";
    $header .= "Content-type: text/html; charset=iso-8859-1\r\n"

  6. #6
    Ok ho provato, la mail arriva, però dovrei creare una pagina o comunque anche solo un messaggio sopra il form, dopo l'invio, che indichi che la via è stata inviata o meno.
    Come posso ottenere questo risultato?
    Grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    56
    Dentro alla pagina che invia la mail aggiungi l'header Location per tornare alla pagina di prima il codice sarebbe circa questo:

    Codice PHP:
    if(mail($email_to$subject ,$messaggio ,$header ))
    {
           
    header("Location: paginaform.php?status=sent");
    }
    else
    {
           
    header("Location: paginaform.php?status=err");


    e nella pagina in cui hai costruito il form inserisci:

    Codice PHP:
    if($_GET['status']=="sent"){    echo 'La mail è stata inviata con successo';}elseif($_GET['status']=="err"){    echo 'La mail non è stata inviata';} 

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.