Risorsa informatica – Blognews
facebook rss youtube

Prima di iniziare dobbiamo verificare di avere una pagina nella quale inserire il codice del form che sarà la poi nostra pagina contatti . Abbiamo creato un documento vuoto chiamato pagina contatti e due cartelle per ospitare magari ci fosse esigenza 2 mail diverse Avremo quindi una situazione simile

Nella prima cartella creeremo un file php che sarà il gestore dell’invio della mail . Chiamiamolo invia.php

Apriamolo e incolliamo il seguente contenuto

<?php // inserisci qui il tuo indirizzo email $receiverMail = “tuo_indirizzo@email.xxx“; // pulizia dei dati inseriti $name = ltrim(rtrim(strip_tags(stripslashes($_POST['name'])))); $email = ltrim(rtrim(strip_tags(stripslashes($_POST['email'])))); $subject = ltrim(rtrim(strip_tags(stripslashes($_POST['subject'])))); $msg = ltrim(rtrim(strip_tags($_POST['msg']))); // lettura dell’indirizzo IP $ip = getenv(“REMOTE_ADDR”); // formattazione del messaggio ( \n per le messe a capo ) $msgformat = “Messaggio da: $name ($ip)\nEmail: $email\n\n$msg”; // verifica campi obbligatori if(empty($name) || empty($email) || empty($subject) || empty($msg)) { echo “<h3>Il messaggio non è stato inviato</h3><p>Compila tutti i campi obbligatori!</p>”; } // verifica indirizzo email elseif(!ereg(“^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$”, $email)) { echo “<h3>Il messaggio non è stato inviato</h3><p>L’indirizzo email indicato non è valido!</p>”; } else { // invio del messaggio mail($receiverMail, $subject, $msgformat, “From: $name <$email>”); echo “<h3>Il messaggio e’ stato inviato!</h3><p>Riceverai una risposta il prima possibile!</p>”; } ?>

Dove $receiverMail = inserirete il vostro indirzzo sulla quale volete ricevere la posta . Ci troveremo quindi con uno screen simile

Aprimo la pagina dei contatti che si presenterà inizialmente cosi :

Facciamo in modo che venga richiamato il tutto tramite il form con il seguente codice tra <body> e </body>

<form method=”post” action=”mail1/invia.php“> <font face=”Verdana”><b><font size=”2″>Nome:<br /></font></b> <input name=”name” size=”30″ maxlength=”40″ style=”font-weight: 700″ /><b><font size=”2″><br /><br /> Email:<br /></font></b> <input name=”email” size=”30″ maxlength=”40″ style=”font-weight: 700″ /><b><font size=”2″><br /><br /> Oggetto:<br /></font></b> <input name=”subject” size=”30″ maxlength=”40″ style=”font-weight: 700″ /><b><font size=”2″><br /><br /> Messaggio:</font></b></font><br /><textarea name=”msg” cols=”50″ rows=”6″></textarea><br /><br /> &nbsp;<input type=”submit” value=”Invia” /> </form>

Abbiamo inserito il file di invio in una cartella di nome mail1 e pertanto è possibile variare la destinazione Salviamo il tutto ed il nostro form di base è prono !

seguici

condividi su facebook

Categories: Web

38 Commenti

  1. Massimo N. scrive:

    Ho seguito la guida , sono riuscito a creare il form , vorrei però cambiare “messaggio” con Testo , come devo fare ?
    Grazie Massimo

  2. admin scrive:

    Ciao Massimo N. , puoi modificare il messaggio editando la parte Messaggio in Testo nella parte che qui vedi alla riga 11

  3. Interessato scrive:

    Ciao a tutti, io ho seguito tutte le istruzioni passo passo, ma alla fine, quando creo il modulo, il tasto invia non compare ma al suo posto c’è la scritta ”Invia” solo come testo. dove ho sbagliato?

  4. Interessato scrive:

    Ciao ora il tasto mi compare ma, una volta compilato il modulo, mi si apre questo:

    Il messaggio non è stato inviato

    Compila tutti i campi obbligatori!
    ”; } // verifica indirizzo email elseif(!ereg(”^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$”, $email)) { echo “
    Il messaggio non è stato inviato

    L’indirizzo email indicato non è valido!
    ”; } else { // invio del messaggio mail($receiverMail, $subject, $msgformat, “From: $name ”); echo “
    Il messaggio e’ stato inviato!

    Riceverai una risposta il prima possibile!
    ”; } ?>

    malgrado io abbia compilato tutti i campi. Che devo fare?

  5. admin scrive:

    Mi sembra che tu abbia un problema con il php o hai fatto un errore di battuta nel compilare il file ;

  6. justme scrive:

    Salve, ho lo stesso problema con il tasto invia, che non compare ma al suo posto c’è la scritta ”Invia” solo come testo. Qual è la soluzione al problema?

  7. massimo scrive:

    Ciao io vorrei creare un form proprio come questo per lasciar eun commento nella pagina che sto visualizando come faccio?
    santeguero@yahoo.it

  8. admin scrive:

    Nella pagina che visualizzi non è possibilie in quanto non di tua proprietà non hai l’accesso di inserirne il codice . Se si riferisce ad una pagina sua basata su wordpress ci sono dei plug-in appositi o si crea una pagina esterna in html linkata “Contattaci” .

  9. Giuglius78988 scrive:

    Credo di non avere l’estensione php nel server , come posso rimediare in modo da far funzionare il form ?

  10. Giovanna scrive:

    Grazie mille , mi è stato veramente di aiuto
    @Giglius , chiedi al tuo servizio di hosting

  11. stefano scrive:

    Ciao, ho creato il form, ma nonostante compilando tutti i campi mi dice che devo compilare tutti i campi,

    come posso risolvere?, non credo di aver fatto errori di battitura,

  12. mimmo scrive:

    Ho risolto;per il tasto invio il problema è che devi riscrivere tutte le virgolette ” nel foglio a mano,probabilmente facendo copia e incolla prende una formattazione non idonea(io uso dreamweaver)

  13. mimmo scrive:

    Aggiungo che anche a me non funzionava il controllo dei campi obbligatori,quindi ho rimosso la stringa interessata,ora va benone.Grazie

  14. Fausto scrive:

    Grazie per questo script a me funziona bene, ma fate attenzione nel copia e incolla c’è un errore delle virgolette devono essere così ” e non così “ ho dovuto fare un cerca e sostituisci ma funziona alla grande.

  15. Vincenzo scrive:

    Innanzitutto complimenti per la guida: veloce, semplice, chiara ed efficace.

    Volevo chiedere una cosa a proposito del tasto invia, spero di non risultare troppo banale:

    Partendo dal presupposto che uso Dreamweaver (ed ho risolto il problema delle virgolette); dopo aver completato la creazione del form ho fatto un anteprima e ho compilato il form, ma quando clicco su invia mi dice che la pagina richiesta non è stata trovata; è un problema che riguarda il fatto che il sito non sia su un server oppure ho sbagliato qualcosa?

    Un grazie in anticipo per la collaborazione.

    Vincenzo

    • admin scrive:

      Assicurati di aver messo nella stessa cartella il file invia.php inoltre necessiti della lettura del php quindi o un webserver locale oppure in remoto su un hosting “qualunque”

      • Vincenzo scrive:

        Gentile Admin,
        grazie per la risposta!

        Ho risolto:

        Riguardo alla cartella avevo fatto tutto correttamente, il mio errore, successivamente spartito in 2 diversi errori, era che:

        1 Non avevo caricato il sito (tutti i file riguardanti il sito) su un server (neanche in locale).

        2 Dopo aver osservato attentamente il codice di “invia.php” ho scoperto che non avevo “pulito” bene la prima riga, mandando a capo l’$della mail; un’intera riga era letta come commento!

        Fortunatamente quindi sono riuscito a provare il tutto, anche grazie ad amici che mi hanno fatto il favore di hostare il sito per qualche ora.

      • admin scrive:

        Grazie per aver indicato la soluzione al suo problema, probabilmente utile a chi si trova nella stessa situazione.

  16. Angelo scrive:

    Buon giorno,
    Sono un nuovo utente ed inesperto utilizzatore di joomla,
    premesso ciò, ho cercato di seguire le indicazioni riportate sopra.
    Sono riuscito ad inserire in un articolo del mio sito il form di contatto, ma quando invio il tutto mi da il seguente errore:

    503 Service Unavailable
    The server is temporarily busy, try again later! Powered By LiteSpeed Web Server
    LiteSpeed Technologies is not responsible for administration and contents of this web site!
    Grazie per l’aiuto che vorrete fornirmi

  17. luke scrive:

    non riesco a risolvere il problema che aveva interessato e cioè:
    una volta compilato il modulo, mi si apre questo:

    Il messaggio non è stato inviato

    Compila tutti i campi obbligatori!
    ”; } // verifica indirizzo email elseif(!ereg(”^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$”, $email)) { echo “
    Il messaggio non è stato inviato

    L’indirizzo email indicato non è valido!
    ”; } else { // invio del messaggio mail($receiverMail, $subject, $msgformat, “From: $name ”); echo “
    Il messaggio e’ stato inviato!

    Riceverai una risposta il prima possibile!
    ”; } ?>

    da che può dipendere?? ho controllato tutto quello che è stato scritto dopo….. boh!! ;)

  18. roberto scrive:

    Buona sera!
    Ho trovato queste informazioni e devo dire che a parte qualche problemino iniziale, tutto va alla grande! Complimenti.
    Mi serviva sapere però 3 cose:
    1) Come si fa a compilare il campo oggetto in maniera tale che una volta inviata sulla casella di posta non mi compaia (nessun oggetto)
    2)è possibile avere una schermata graficamente più accattivante una volta avvenuto il corretto invio invece della pagina bianca?
    3)Dopo inviato e ritornando alla form…come è possibile far si che i campi siano tutti puliti?

    Non so se ho esagerato che le domande… ma mi saresti di grande aiuto.

    Grazie

    • admin scrive:

      1) In teoria l’oggetto è preso dal campo oggetto quindi probabilmente c’è qualche errore nel codice il quale non trasferisce il dato.

      2) Per la grafica basta avere minime conoscenze di PHP HTML e CSS. La personalizzazione è possibile e deve essere eseguita nel seguente:
      echo “

      Il messaggio e’ stato inviato!

      Riceverai una risposta il prima possibile!

      3) la pulizia dei campi può essere fatta attraverso javascript :
      function clearForms()
      {
      var i;
      for (i = 0; (i < document.forms.length); i++) {
      document.forms[i].reset();
      }
      }

      Di conseguenza richiamare la funzione onUnload=”clearForms()

  19. johnks scrive:

    Ciao…scusa il disturbo ho provato questo form…compilo i dati e tutto ma quando faccio la prova con dreamweaver mi da questo errore

    Errore 6 (net::ERR_FILE_NOT_FOUND): Impossibile trovare il file o la directory.

    forse devo prima caricarlo su server???

    grazie in anticipo

  20. StefyStef scrive:

    Salve…
    ho provato questo form,ho compilato tutti i dati come da te indicato. Ho caricato la pagina sul server (che supporta php), solo che quando premo Invia il browser mi dice che la pagine non è stata trovata.
    Come posso risolvere??

  21. giorgio scrive:

    Grazie mille perfetto!!!
    Scusami come si può importare nella mail l’ip della persona che compila la form?

  22. giorgio scrive:

    Come si potrebbe inserire il captcha e come vanno modificati i file html e invia.php?

    Grazie mille :D

  23. manu scrive:

    non ho capito qual’è il formato del documento vuoto per i contatti

  24. Manuel scrive:

    salve, ho seguito passo passo la sua guida, ma quando clicco sul pulsante “Invia!” non me la fare arrivare per quale motivo??
    Ho Gmail.

Rispondi