Creare email form
Ormai realizzare un’email form è diventata un’operazione abbastanza semplice e veloce grazie ai plugin per WordPress e delle altre piattafome. Ma il risultato non è mai quello che si vuole realmente, perchè per via del processo automatizzato non si riescono a controllare ogni singolo parametro.
Come si realizza?
Intanto ci servono due pagine con estensione .php, una per la compilazione del form che in questo caso chiameremo form.php, e l’altra per l’invio send.php.
Ipotizziamo di realizzare una pagina contatti sul nostro blog, quindi useremo i seguenti campi:
- nome
- indirizzo email
- oggetto
- messaggio
Realizzare il form
Un form utilizza due metodi per scambiare dati: Get e Post. Il primo mostra in chiaro i parametri che si passano sull’url, mentre post protegge questi parametri. Noi ora utilizzeremo Get perchè passiamo solo pochi parametri.
<form action="send.php" method="get">
<label>Nome: <input name="nome" type="text" /></label>
<label>Indirizzo email: <input name="email" type="text" /></label>
<label>Oggetto: <input name="oggetto" type="text" /></label>
<label>Messaggio:
<textarea cols="20" rows="5" name="richiesta"></textarea>
</label>
<label><input type="submit" value="Invia" /></label>
</form>Inviare l’email
Ora dovremmo inserire questo poche righe di php nella pagian send.php
<?php #variabili $nome = $_GET['nome']; $email = $_GET['email']; $oggetto = $_GET['oggetto']; $richiesta = $_GET['messaggio']; if($nome == "" || $email == "" || $oggetto == "" || $messaggio == "") { echo"Devi compilare tutti i campi"; exit(); }; mail("tuaemail@tuoserver.com","Info","$nome richiede infomazioni riguardo: $oggetto\r\n\r\nMessaggio: $richiesta\r\n\r\nemail: $email"); ?> <h1>Richiesta Inviata con successo</h1> <a href="index.php">Grazie! Torna indietro</a>
Inoltre questo script php blocca l’invio del messaggio se non si compilano tutti i parametri.





11 Commenti su “Creare email form”
[...] Realizzare un form è veramente molto semplice, e altrettanto semplice è convalidarlo. Esistono diverse soluzione in javascript, ma col php è ancora più semplice. [...]
[...] Vedi anche… [...]
[...] ciao, prova a guardare anche qui form email [...]
Non mi sembra affatto semplice, sto impazzendo nella realizzazione di un form! Questa è la pagina:
http://europeanfestival.altervista.org/form_inglese.html
questo è il codice php:
Mi aiutereste a comprendere perchè non funziona? Grazie
Ciao Daniele
allora, prima di tutto assicurati che metodo stai utilizzando: Post e Get?
poi tieni conto che il php è case sensitive, quindi quando scrivi il name di un input, esso deve corrispondere esattamente anche nel recupero della variabile nello script php.
Puoi fare anche un copia e incolla del codice esempio nel post e risvilupparlo in base alle tue esigenze.
Tienimi aggiornato, grazie!
Ho notato cercato di inviare il codice PHP ma non lo visualizza.. Il metodo che sto usando è POST, ma non conosco la differenza tra i due. Il php mi pare corrisponda ai parametri che desidero inviare dalla pagina html, ma deve esserci qualche altro problema perchè la mail non parte proprio, e non dà nemmeno la notifica di errore..
Facciamo così, inviami sia il codice html che php via email..che trovi sulle info, e gli darò un’occhiata..così è difficile capire.
a presto! ciao!
Un ciao a tutti….scusate l’ignoranza….ma la pagina send.php dove va inserita?In attesa di una riposta vi ringrazio
Il file send.php deve essere inserito nella stessa cartella della pagina del form.. ma cambiando l’indirizzo dell’attributo action, puoi metterla dove vuoi.
@daniele: il codice php non va inserito nella stessa pagina html dove sta il form, ed inotre è importante che la pagina send, abbia estensione .php
salve. ho inserito il codice html nella pagina html. Ho anche inserito la pagina php nella root sul server.
quando provo a compilare una richiesta (inserisco tutti i campi) e clicco su invia, mi compare la pagina…cn la scritta devi compilare tutti i campi? cm mai??? da cosa dipende?
poi inoltre è possibile inserire nella pagina (richiesta inviata cn successo) un redirect alla pagina del form?? Grazie mILLE..
complimenti