Cerchi guide e consigli riguardo al mondo del webdesign?
Sei nel posto giusto!
Iscriviti subito al nostro Feed RSS!

Creiamo un bellissimo contact form in jQuery e PHP

Articolo pubblicato il 23-11-2009. Categorie: CSS, jQuery, PHP e.., Tutorial testuali. Commenti: 98.

Creiamo un bellissimo contact form in jQuery e PHP
Oggi voglio mostrarvi come creare un simpatico contact form in jQuery e PHP, che non necessita di refresh della pagina. Principalmente, il form sarà costituito da un foglio di stile, dal file html contenente il modulo, da un file jquery e da un file php. Potete vedere qui una demo.

Creiamo subito il nostro file html contenente, naturalmente, il link alla libreria jQuery, al nostro foglio di stile e al nostro script. Questo conterrà anche un div di nome “risposta” nel quale comparirà un messaggio di avvenuto, o meno, invio dell’e-mail.

< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
jQuery contact form
 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"><!--mce:0--></script>
<script src="jquery_mail.js" type="text/javascript"><!--mce:1--></script>
 
<form id="formail" method="post">
<div id="risposta"></div>
Nome:
 
	<input id="nome" name="nome" type="text" />
 
E-mail:
 
	<input id="email" name="email" type="text" />
 
Oggetto:
 
	<input id="oggetto" name="ogggetto" type="text" />
 
Messaggio:
 
	<textarea id="messaggio" cols="20" rows="9" name="messaggio"></textarea>
 
	<input id="invia" name="invia" type="submit" value="Invia" />
	</form>

Ora, diamo un tocco di stile Creiamo un bellissimo contact form in jQuery e PHP . Il nostro file si dovrà chiamare, naturalmente, style.css.

p{
margin: 0 0 5px 0;
color:#5F6565;
font-family:Tahoma,Arial,Helvetica,sans-serif;
}
form#formail{
margin:0 auto;
width: 315px;
background-color: #f2f2f2;
border: 1px solid #dbdbdb;
padding: 10px;
}
input[type=text]{
background:#FFFFFF none repeat scroll 0 0;
border:1px solid #CED0D0;
color:#5F6565;
font-family:Tahoma,Arial,Helvetica,sans-serif;
margin-bottom:10px;
padding:4px 5px;
width:300px;
}
textarea{
background:#FFFFFF none repeat scroll 0 0;
border:1px solid #CED0D0;
color:#5F6565;
font-family:Tahoma,Arial,Helvetica,sans-serif;
padding:4px 5px;
width:300px;
height: 160px;
}
#risposta{
display: none;
border: 1px solid #ccc;
padding: 10px;
margin-bottom: 10px;
}

Creiamo ora il file “jquery_mail.js” e inseriamo questo codice. Ho aggiunto dei commenti, quindi dorvebbe essere di facile comprensione.

  $(document).ready(function(){
	$("#invia").click(function(){
 
	//Recuperiamo tutte le variabili
		var valid = '';
		var isr = ' è richiesto.';
		var name = $("#nome").val();
		var mail = $("#email").val();
		var subject = $("#oggetto").val();
		var messaggio = $("#messaggio").val();
 
	//Eseguiamo una serie di controlli
		if (name.length&lt;1) {
			valid += '
 
Un nome valido'+isr;
		}
		if (!mail.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
			valid += '
 
Un indirizzo e-mail valido'+isr;
		}
		if (subject.length&lt;1) {
			valid += '
 
Un oggetto valido'+isr;
		}
	//Se i controlli non vengono superati, appare il messaggio di errore.
		if (valid!='') {
			$("#risposta").fadeIn("slow");
			$("#risposta").html("
 
<strong>Errore:</strong>
 
"+valid);
			$("#risposta").css("background-color","#ffc0c0");
		}
		//Se i controlli vengono superati, compare un messaggio di invio in corso
		else {
			var datastr ='name=' + name + '&amp;mail=' + mail + '&amp;subject=' + subject + '&amp;messaggio=' + encodeURIComponent(messaggio);
			$("#risposta").css("display", "block");
			$("#risposta").css("background-color","#FFFFA0");
			$("#risposta").html("
 
Invio del messaggio in corso..
 
");
			$("#risposta").fadeIn("slow");
			setTimeout("send('"+datastr+"')",2000);
		}
		return false;
	});
});
//Creazione della funzione di invio. Si baserà sul nostro file php "mail.php".
function send(datastr){
	$.ajax({
		type: "POST",
		url: "mail.php",
		data: datastr,
		cache: false,
		success: function(html){
		$("#risposta").fadeIn("slow");
		$("#risposta").html(html);
		$("#risposta").css("background-color","#e1ffc0");
		setTimeout('$("#risposta").fadeOut("slow")',2000);
	}
	});
}

Infine creiamo il file “mail.php” nel quale inseriremo il codice che servirà ad inviare la nostra e-mail.

&lt; ?php
//Recuperiamo tutte le variabili
	$mail = $_POST['mail'];
	$name = $_POST['name'];
	$subject = $_POST['subject'];
	$text = $_POST['messaggio'];
	$ip = $_SERVER['REMOTE_ADDR'];
 
//Qui andrà inserito il tuo indirizzo e-mail
$to = "indirizzo@email.com";
 
//Creazione del mesaggio da inviare
$message = "Hai ricevuto una e-mail da: ".$name.", ".$mail.".
";
$message .= "Messaggio: 
".$text."
 
";
$message .= "IP: ".$ip."
";
$headers = "From: $mail \n";
$headers .= "Reply-To: $mail \n";
$headers .= "MIME-Version: 1.0 \n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1 \n";
 
//Se l'e-mail viene spedita correttamente, compare un messaggio di avvenuto invio
 if(mail($to, $subject,$message, $headers)){
	echo "
 
Messaggio inviato con successo
 
";
}
//Altrimenti un messaggio di errore
else{
	echo "
 
Ci sono stati degli errori nell'invio della e-mail.
 
";
}
?&gt;

Puoi scaricare da qui lo script completo. Se hai una domanda o un dubbio, ti invitiamo a lasciarci un commento Creiamo un bellissimo contact form in jQuery e PHP

98 commenti


  1. Kharg
    novembre 23rd, 2009

    Dubbio: cosa è il jquery? xD
    mi piacerebbero di più dei tutorial su photoshop u.u

    Rispondi


    STAFF
    novembre 23rd, 2009

    ehehe, comunque sarebbe una libreria javascript. Ti permette di fare molti effetti grafici carini con poche righe di codice :P

    Rispondi



    antonio
    ottobre 24th, 2010

    Ciao, volevo dire che.. ho provato ma non mi funziona…mi da il mess. di errore…insomma se esce il messaggio che cosa ho sbagliato?

    Rispondi




  2. Deli
    novembre 25th, 2009

    Potresti fare un tutorial su come creare quell’effetto javascript per le categorie, i commenti, gli archivi ecc. ?????
    Comunque molto bello questo!

    Rispondi


    STAFF
    novembre 25th, 2009

    In verità non l’ho realizzato io, l’ho trovato non ricordo dove :D Comunque appena posso farò una guida su come realizzare una cosa simile..

    Rispondi




  3. Deli
    novembre 26th, 2009

    @ STAFF:
    Grazie

    Rispondi



  4. Kharg
    novembre 29th, 2009

    Vorrei mostrarvi un bellissimo template in jquery per i siti in construzione: http://www.ourtuts.com/free-site-under-constructi… perche non farne una news? :D

    Rispondi


    Artedelweb
    novembre 29th, 2009

    Grazie, lo conosciamo già, solo che ha già spopolato nella blogsfera e non volevamo pubblicare un articolo/copia ;)

    Rispondi




  5. lorenzo
    maggio 13th, 2010

    quando provo a inviare un messaggio si blocca su "invio in corso" e non va più avanti.
    wp 2.9.2 su tophost… zero plugin attivi. da cosa può dipendere?

    Rispondi


    Artedelweb
    maggio 14th, 2010

    Non ti saprei dire. Devi controllare che siano settate correttamente le configurazioni del tuo hosting e che la funzione mail() sia stata ben eseguita!

    Rispondi




  6. Lorenzo
    maggio 14th, 2010

    grazie per la risposta, ma è proprio questo che mi sfugge: come si fa a controllare cosa ha combinato la funzione php mail() ? esiste un log? mi sto anche chiedendo se non sia il jQuery, ma ho controllato il changelog dalla 1.3.2 alla 1.4.2 e non è cambiato nulla di quello usato…

    Rispondi



  7. Lorenzo
    maggio 14th, 2010

    è proprio vero che a volte si spulciano le più piccole azioni ma si lasciano le travi in bella vista.
    ho risolto, se inserito in una pagina di wordpress va dichiarato l'esatto indirizzo del file mail.php, altrimenti non va. ho provato e funziona, grazie ancora e ciao! :)

    Rispondi


    Artedelweb
    maggio 14th, 2010

    Eheh, infatti a volte non si riesconoa cogliere proprio gli errori più banali! :D

    Rispondi




  8. Massimiliano
    luglio 12th, 2010

    Se nel messaggio ci sono apostrofi si blocca su invio in corso.. e non va avanti

    Rispondi



  9. il_Colonnello
    luglio 27th, 2010

    si blocca anche se nella taxtarea vai a capo
    peccato

    Rispondi



  10. giacomo
    agosto 9th, 2010

    Se premo il tasto a capo sulla tastiera quando scrivo il messaggio si blocca su invio messaggio e non va avanti..

    Rispondi



  11. Supra
    agosto 10th, 2010

    da me funziona perfettamente.. grazie milleee!

    Rispondi



  12. Danilo
    agosto 12th, 2010

    Ho lo stesso problema di Giacomo. Se nella textarea si inserisce un "a capo" (tasto invio) al submit compare il messaggio "Invio del messaggio in corso.." e si blocca. Se invece si inserisce solamente testo tutto funziona perfettamente. Qualcuno ha qualche idea del perché? Grazie per l'eventuale aiuto.

    Rispondi



  13. Artedelweb
    agosto 17th, 2010

    Mmh, effettivamente è così! Non ne capisco il motivo però; sembra esserci un problema con la validazione del campo del messaggio. Potete aggirare il problema modificando la riga 10 da "var text = $("#messaggio").val();" a "var text = $("#messaggio");" (senza virgolette naturalmente). Unico inconveniente: l'e-mail viene inviata anche se priva di messaggio.

    Rispondi



  14. duffimc
    agosto 30th, 2010

    salve…io ho notato che se i file .html .js e .php non sono nella stessa cartella lo script non funge.
    I miei file sono disposti cosi:

    /index.html
    /mail.php
    js/mail.js
    css/style.css

    nello script mail.js alla voce url ho inserito ../mail.php ma facendomi visualizzare un eventuale errore (.error) mi da un errore sulla chiamata appunto.
    ho provato a spostare il file nella stessa cartella dello script jquery ma sempre lo stesso.
    In fine ho spostato tutto nella root e lo script ha funzionato….mmmm
    Qualche idea per avere i file organizzati e non tutti in una cartella??
    Grazie per l'attenzione

    p.s.
    ho anche utilizzato un path assoluto per il file php ma niente…

    Rispondi


    duffimc
    agosto 30th, 2010

    risolto…questione di path :p

    Rispondi


    Artedelweb
    agosto 30th, 2010

    ottimo! ;)

    Rispondi





  15. maya
    ottobre 7th, 2010

    Ciao,
    ho provato il form…funziona tutto, ma quando faccio invio invece del testo “messaggio inviato con successo” mi esce tutto il codice sullo sfondo verde….sapete dirmi perché?
    puo essere perché non l’ho ancora messo online e in locale mi fa problemi il php?
    grazie mille :)

    Rispondi


    Staff
    ottobre 7th, 2010

    Sei sicura che non ci siano ” o ‘ aperti e non chiusi? Comunque provalo anche su server, o postaci parte del tuo codice! :P

    Rispondi




  16. maya
    ottobre 8th, 2010

    si effettivamente sul server funziona tutto!
    grazie

    Rispondi



  17. Debba
    ottobre 8th, 2010

    Io l’ho installato su una pagina statica e funziona belissimo, l’unica cosa è che quando vado a leggere la mail che mi manda non posso fare il reply poiché l’indirizzo mail del mittente risulta essere:
    nome_inserito_nella_form@nome_hoster.it

    per esempio Marco@vps.nome.it

    Si può risolvere in modo che funzioni il reply sulla mail generata?

    Rispondi


    Staff
    ottobre 8th, 2010

    Ciao Debba! Abbiamo aggiornato il codice, ora dovrebbe funzionare bene! Facci sapere :)

    Rispondi




  18. maya
    ottobre 8th, 2010

    ciao, sono di nuovo io…
    anche io ho il problema di quando vado a capo nel form, si blocca su invio messaggio.
    Ho provato a cambiare il codice come suggerito ssopra, ma poi non mi manda piu il testo del messaggio.
    C’è un’altra soluzione?
    grazie mille :)

    Rispondi


    maya
    ottobre 8th, 2010

    ecco cosa ricevo come email:

    Hai ricevuto una e-mail da: ycy, ycycy@sdfs.com.
    Messaggio:
    [object Object]

    Rispondi


    Staff
    ottobre 8th, 2010

    Ciao Maya! Abbiamo aggiornato il codice dello script, ora non dovresti avere problemi ;) Facci sapere!

    Rispondi


    maya
    ottobre 8th, 2010

    ehm… no il problema resta cmq se si va a capo all’interno della text area dove scrivi il messaggio.
    ho provato con firefox e google chrome e non cambia niente anche con il nuovo codice…
    faccio qcosa di sbagliato?


    Staff
    ottobre 11th, 2010

    Finalmente sembra di aver risolto! Dacci conferma :)




    maya
    ottobre 12th, 2010

    Ciao! si adesso funziona anche andando a capo nel messaggio!
    Grazie mille :)


    Staff
    ottobre 12th, 2010

    Figurati! :D







  19. Andrea
    novembre 15th, 2010

    Ciao! Per cominciare volevo farti i complimenti per il post, ottima risorsa in tutti i sensi. In secondo luogo volevo chiederti alcuni chiarimenti; ho modificato il codice javascript per inserire più campi ma non riesco a rendere obbligatorio il campo “checkbox”. Vorrei ch spuntasse lo stesso messaggio (ex. “checcare la casella è necessario”) come appare per gli altri campi. Ho cercato di riprodurre il codice utilizzato per il campo “nome” e “oggetto” ma nulla. in sostanza le variabili utilizzati per gli altri campi non vanno bene per i check box. Riporto il codice:

    /*html*/
    prova 1
    prova 2

    /*javascript*/
    $(document).ready(function(){
    $(“#invia”).click(function(){

    var valid = ”;
    var isr = ‘ è richiesto.’;
    ………………….

    if (check.checked) {
    valid += ‘Un nome valido’+isr;
    }

    PUOI DARMI UNA MANO?? Grazie in anticipo e complimenti per il blog!!

    Rispondi


    Andrea
    novembre 15th, 2010

    Ops..avevo dimenticato il codice html, eccolo qui:

    prova 1
    prova 2

    Rispondi


    Staff
    novembre 18th, 2010

    Andrea, nei prossimi giorni sperimenterò un pò di tentativi e ti farò sapere!

    Rispondi


    Andrea
    novembre 23rd, 2010

    Ho risolto il problema mettendo come errore il campo “no”..in questo modo quando si chekka il campo “si” non avviene nessun evento e il form invia il messaggio perche non riscontra errori. Grazie lo stesso :D Ps: è possibile inserire una funzione che al click “invia” mi riporta automaticamente al top del mio sito web senza ricaricare la pagina??


    Artedelweb
    novembre 23rd, 2010

    Ah, ottimo! :D Per lo scroll a inizio pagina, inserisci questo codice dopo setTimeout('$("#risposta").fadeOut("slow")',2000);:
    $('html, body').animate({scrollTop:0}, 'slow');

    Non ho provato, ma credo debba funzionare!


    Andrea
    novembre 23rd, 2010

    Non funziona…:S


    Artedelweb
    novembre 23rd, 2010

    Sei sicuro? Perchè ora ho provato e a me funziona!


    Andrea
    novembre 24th, 2010

    di per se funziona..il problema è che quando torna su cancella il “messaggio di errore” (per intenderci: il campo nome è necessario) perchè riaggiorna la pagina. Hai idea di come si può ovviare a questo problema?


    Artedelweb
    novembre 24th, 2010

    Se ho capito bene il tuo problema, a me non si verifica! Ho aggiornato momentaneamente la pagina demo.. guarda tu stesso!



    Artedelweb
    novembre 24th, 2010

    Se ho capito bene il tuo problema, a me non si verifica! Ho aggiornato momentaneamente la pagina demo.. guarda tu stesso!


    Andrea
    novembre 24th, 2010

    Tutto risolto, è stato solo un equivoco..io volevo che la funzione Scrolltop si attivasse quando veniva segnalato “l’errore” e non dopo il “corretto invio” del messaggio. Ho utilizzato la funzione che mi hai segnalato tu ma l’ho inserita prima (esattamente quando si parla di far apparirre il messaggio che bisogna compilare i campi). Grazie di tutto, SEI UN GRANDE!!

    Continuerò a seguire e a farti pubblicità!! ciao e grazie!


    Artedelweb
    novembre 24th, 2010

    grazie mille a te per i complimenti! :)












    Fabio
    settembre 27th, 2011

    anche io volevo fare la stessa cosa! puoi postare il codice di come hai risolto?? grazie mille!!!

    Rispondi




  20. thebronx
    novembre 30th, 2010

    Si possono inserire delle icone nei box di errore-conferma che appaiono quando si preme invia? Tipo mettere un simbolo grafico con una X per dire che hanno sbagliato a compilare il form e il simbolo grafico OK quando il messaggio viene spedito. non voglio eliminare le scritte ma aggiungere delle icone. Ciao a tutti

    Rispondi


    thebronx
    dicembre 1st, 2010

    Non si puo fare nulla?? :-S

    Rispondi



    Artedelweb
    dicembre 3rd, 2010

    Certo che si può! Devi modificare nel codice javascript, il testo che esce al momento dell’errore o dell’invio, aggiungendo, con l’HTML, le icone!

    Rispondi




  21. cristian
    dicembre 20th, 2010

    ciao, chiedo aiuto a voi…e spero che possiate aiutarmi. ho usato il vostro script, l ho modificato, anzi ho cercato di integrarlo con delle select concatenate, (regioni, province, comuni),ma purtroppo non funziona… o meglio, quando vado ad inviare il modulo mi dice che ci sono stati degli errori nell invio dell email. non riesco a capire dove ho sbagliato… tra l altro anche se provo direttamente solo il vostro script senza le mie modifiche purtoppo non riesco ad inviare ugualmente l’ email,nonostante abbia inserito la mia email nel file mail.php. Da cosa puo dipendere? cosa vi serve per controllarlo? grazie a tutti per la vostra risposta!

    Rispondi



  22. edoluz
    gennaio 5th, 2011

    Vi ringrazio! Molto semplice e chiaro. E soprattutto funziona!
    Una cosa: ho notato che copiando il codice dal sito (.js) in Dreamweaver importa un errore alla riga 13 (probabilmente un problema di caratteri e HTML nel copia incolla).
    Dove dice:

    //Eseguiamo una serie di controlli
    –> if (name.length<1) {

    Immagino ci sia un segno di maggiore lì.

    In ogni caso scaricando il pacchetto tutto funziona!

    Grazie ancora!!

    Rispondi


    Artedelweb
    gennaio 7th, 2011

    Grazie a te.. Si sarà un problema di copia/incolla purtroppo (è un meno!) :D

    Rispondi


    edoluz
    gennaio 8th, 2011

    ciao ragazzi, ancora complimenti!
    sto usando il vostro script e lo trovo davvero grandioso.
    ma il problema è con gli apostrofi: quando si inserisce un postrofo il messaggio non parte.
    come pensate si possa sistemare la cosa?
    grazie infinite!

    edo

    Rispondi


    Umberto
    aprile 13th, 2011

    Anche io ho lo stesso problema. Pur utilizzando il fix di rimuovere .var(); dopo la riga 10 (quella del messaggio) ho provato. Se vado a capo o inserisco un apostrofo la mail parte, ma il contenuto di messaggio è

    [Object Object]….

    Chi mi può aiutare?



    Francesco
    giugno 29th, 2012

    Stesso problema con l’apostrofo crasha tutto..






  23. Eleonora
    maggio 20th, 2011

    Ciao, il form è fantastico e funziona egregiamente ma volevo chiederti se era possibile fare una piccola aggiunta: Come posso aggiungere un campo per allegare file alle email?

    Rispondi


    Artedelweb
    maggio 21st, 2011

    Ciao Eleonora, il form che abbiamo creato è per soli messaggi di testo.. se volessi allegare anche un file dovresti fare parecchie aggiunte in tutto il codice!

    Rispondi


    Luigi
    ottobre 15th, 2011

    Ciao Artedelweb anche io sarei interessato all’aggiunta di un campo per allegare un file per caso saresti cosi gentile da aiutare un povero naufrago magari con qualche dritta? ;) Grazie.

    Rispondi





  24. pippogeek
    agosto 27th, 2011

    Ehm, a me non arriva nessuna email… Non capisco dove ho sbagliato. Qualcuno mi aiuti :(

    Rispondi


    pippogeek
    settembre 14th, 2011

    risolto!

    Rispondi


    andrea
    settembre 20th, 2011

    Ciao ho lo stesso problema come hai risolto? grazie

    Rispondi




  25. Semplice: ho imparato php e me lo sono fatto da solo!

    Rispondi



  26. Fabio
    settembre 26th, 2011

    complimenti per il tutorial ho testato i tuoi codici e funzionano alla perfezione però volevo chiederti un aiuto per implementare il form che magari potrebbe essere utile. Pensavo di fare il controllo su una checkbox dove si dichiara di acconsentire al trattamento dei dati personali. Ti posto qui il codice:

    * Ai sensi del D.Lgs. 196/2003 e successivi vigenti, relativo alla tutela delle persone e di altri soggetti rispetto al trattamento dei dati personali, ti informiamo che i dati da noi raccolti riguardanti la tua persona, saranno utilizzati nel rispetto dei principi di correttezza, liceità trasparenza e tutelando la tua riservatezza e i tuoi diritti.

    accetto

    questo riguardo l’HTML. Nel codice js ho aggiunto la seguente linea di codice
    var checkbox = $(“#checkbox”).val();
    if(checkbox.value == false) {
    devi accettare le condizioni
    }
    solo che non riesco ad effettuare il controllo come negli altri campi. Come si potrebbe fare?
    Grazie dell’attenzione!!

    Rispondi



  27. Phil
    ottobre 20th, 2011

    Ottimo, proprio quello che cercavo!
    C’è solo una cosa che non ho capito. Se metto il file jquery_mail.js nella stessa cartella del mio html, funziona. Se lo metto nella cartella dove tengo gli scripts (dove sta jquery, quindi i percorso è corretto), non funziona :-( Qualche idea?

    Rispondi


    Artedelweb
    ottobre 20th, 2011

    hai cambiato anche i vari indirizzi negl’altri file? come url: “mail.php, in appunto jquery_mail.js, oppure il collegamento allo script nel file html?

    Rispondi




  28. paolo
    ottobre 22nd, 2011

    Ho provato a inserire il form su un sito, ma continua a darmi errore di invio. controllato e ricontrollato ma mi sembra tutto a posto. Ho letto in un commento precedente che potrebbe essere un problema del server, visto che il sito è ospitato su un server della bt-albacom e che mi ha creato altri problemi.
    qualche suggerimento?
    grazie

    Rispondi


    paolo
    ottobre 22nd, 2011

    confermo che è un problema di server!! ho fatto la prova su un altro sito su un altro server e funziona! Ma che cosa devo chiedere all’assistenza?

    Rispondi




  29. andrea
    novembre 6th, 2011

    Ciao ho scaricato lo script e inserito solo l’indirizzo email nel file mail.php, ma nessuna e-mail viene inviata e questo è il messaggio di errore:
    “; $message .= “Messaggio:
    “.$text.”

    “; $message .= “IP: “.$ip.”
    “; $headers = “From: $mail \n”; $headers .= “Reply-To: $mail \n”; $headers .= “MIME-Version: 1.0 \n”; $headers .= “Content-Type: text/html; charset=ISO-8859-1 \n”; //Se l’e-mail viene spedita correttamente, compare un messaggio di avvenuto invio if(mail($to, $subject,$message, $headers)){ echo ”
    Messaggio inviato con successo
    “; } //Altrimenti un messaggio di errore else{ echo ”
    Ci sono stati degli errori nell’invio della e-mail.

    Rispondi


    Marco
    luglio 14th, 2012

    Ciao, complimenti per il contact form per chi se ne è occupato ma anche io ho lo stesso errore.

    “; $message .= “Messaggio:
    “.$text.”

    “; $message .= “IP: “.$ip.”
    “; $headers = “From: $mail \n”; $headers .= “Reply-To: $mail \n”; $headers .= “MIME-Version: 1.0 \n”; $headers .= “Content-Type: text/html; charset=ISO-8859-1 \n”; //Se l’e-mail viene spedita correttamente, compare un messaggio di avvenuto invio if(mail($to, $subject,$message, $headers)){ echo ”

    Ci sono stati degli errori nell’invio della e-mail.
    “;}?>

    Qualcuno ha risolto? Grazie

    Rispondi




  30. Mirco
    dicembre 21st, 2011

    Ciao, complimenti per il post.

    Purtroppo non risco a farlo funzionare.
    Per sicurezza ho provato a pubblicarlo così come l’ho scaricato, aggiornando solo l’indirizzo email, ma si blocca su invio del messaggio in corso.

    Attualmente è hostato presso aruba su un server linux.

    Hai qualche suggerimento????

    Rispondi


    Mirco
    dicembre 21st, 2011

    Provando a mettermi degli alert ho visto che si blocca qui:

    function send(datastr){
    $.ajax({
    type: “POST”,
    url: “mail.php”,
    data: datastr,
    cache: false,
    success: function(html){
    alert(‘brao2′);
    $(“#risposta”).fadeIn(“slow”);
    $(“#risposta”).html(html);
    $(“#risposta”).css(“background-color”,”#e1ffc0″);
    setTimeout(‘$(“#risposta”).fadeOut(“slow”)’,2000);
    }
    });
    }

    Entra nella funzione ma nn esegue l’ajax ….
    Come posso fare, i file attualmente sono tutti nella root del sito.

    Rispondi




  31. nicola
    gennaio 19th, 2012

    ho provato ad usare questo script ma non funziona!! aiuto!! esce il seguente codice di errore: Warning: mail() [function.mail]: SMTP server response: 503 This mail server requires authentication when attempting to send to a non-local e-mail address. Please check your mail client settings or contact your administrator to verify that the domain or address is defined for this server. in D:\webroot\domenicoinfante\agenziainfanteviaggi.it\wwwroot\mail.php on line 22

    Rispondi



  32. stella
    gennaio 20th, 2012

    ciao!
    io sto cercando disperatamente il codice HTML di un form esattamente come questo che ho appena compilato..chissà se mi puoi aiutare?

    a me interessa che sul sito non sia visibile l’email ma il resto si..nome e commento.
    grazie mille e..complimenti davvero un ottimo sito!
    ciao!

    Rispondi



  33. David
    marzo 25th, 2012

    Questo script è molto utile.

    Però ho un problema quando nel mail.php metto dei *.*@yahoo.it oppure dei *.*libero.it

    Possibile ? Con altri nessun problema. Cosa posso fare ?

    Grazie.

    Rispondi



  34. Form - Pagina 2
    aprile 11th, 2012

    [...] [...]



  35. mar
    aprile 23rd, 2012

    a me non funziona con internet explorer 9

    Rispondi



  36. Davide
    giugno 13th, 2012

    Ciao. Provato, funziona benissimo. Mi unisco al coro che chiede l’allegato. Mi aiuteresti tantissimo

    Rispondi



  37. Marco
    luglio 15th, 2012

    Ciao. Complimenti per il form, molto bello. In un secondo momento mi ha funzionato on line mettendolo su un sito. Inoltre propongo una verifica sull’avvenuto invio dell’e-mail perchè con le e-mail di tiscali inviate nel form non si ricevono nonostante che sta scritto che l’invio è avvenuto con successo. Come mai?

    Rispondi



  38. Cristian
    luglio 24th, 2012

    Ciao ragazzi..innanzitutto grazie mille per lo script!!il form è molto bello e funzionale!!l’ho provato in una pagina unica personalizzandolo un pò e funziona tutto!!
    ora ho un problema..dovrei integrarlo in un sito internet..di una sola pagina con tutte le sezioni una dopo l’altra e un lunghissimo scroll verticale.Non ho caricato la libreria di jquery in quanto è già presente nell’head per il funzionamento di altri script (nivoslider,smoothscroll e cufon), la libreria in questione è la 1.7.2!!solo che così facendo il form nn mi funziona e se carico pure l’altra libreria si crea un conflitto fra gli script e mi funziona “solo” il form!!!
    qualche idea su come risolvere!?!!
    grazie mille!!!

    Rispondi


    cristian
    luglio 24th, 2012

    nessuno in linea!?!?sono disperato..ho provato il noConflict ma nn mi funziona!!!

    Rispondi




  39. woolrich
    agosto 14th, 2012

    qualche idea su come risolvere!?!!

    Rispondi



  40. nery
    agosto 21st, 2012

    il messaggio non presenta l’oggetto…. uhm….

    Rispondi



  41. lorenzo
    settembre 10th, 2012

    Ciao!!! lo script è molto carino ma non funziona…
    mi viene questo errore:

    XMLHttpRequest cannot load file:///C:/xampp/htdocs/test2/mail.php. Origin null is not allowed by Access-Control-Allow-Origin.

    mi aiuti???

    Rispondi



  42. Moncler
    ottobre 6th, 2012

    nessuno in linea!?!?

    Rispondi



  43. Gigi
    novembre 1st, 2012

    Carino e veloce da implementare. Very good

    Rispondi



  44. Gigi
    novembre 1st, 2012

    Ho aggiunto la sostituzione dell’apice singolo nel campo del messaggio aggiungendo la riga:

    messaggio = messaggio.replace(/’/g, “”);

    nel file jquery_mail.js nella sezione dei controlli

    e poi ho modificato il controllo sul campo nome in modo tale da accettare solo lettere (minuscole e maiuscole):

    if (!name.match(/^[a-zA-Z]+$/)) {

    spero sia utile
    ciao

    Rispondi


    enzo
    maggio 19th, 2013

    Ciao, puoi spiegare il procedimento? grazie

    Rispondi




  45. shanaka
    novembre 8th, 2012

    ciao, ti ringrazio innanzi tutto per il codice.
    dopo che ho cambiato ( “//Qui andrà inserito il tuo indirizzo e-mail
    $to = “indirizzo@email.com”;) con il mio indirizzo email, provo ad inviarne uno ma non funziona, anche se mi appare il messaggio di avvenuta consegna del email. nel senso che non mi arriva la email.
    cosa devo fare?

    Rispondi



  46. ja
    dicembre 6th, 2012

    ciao! a me il form non funziona…se metto la mia mail non mi arriva niente….ho messo tutto nella stessa cartella…

    Rispondi


    Dave
    dicembre 15th, 2012

    Ciao! pure a me non funziona, o meglio.. le notifiche colorate avvisano che la mail è stata inviata, in realtà sembra non parta nulla! è un problema a livello di codice o può essere un problema server?
    Grazie!

    Rispondi




  47. werty
    dicembre 26th, 2012

    ho un problema mi va in conflitto con un altra jquary e come obbligo mi chiede solo la mail Non sono riuscito a farlo funzionare con il metodo noConflict() potete aiutarmi? grazie

    Rispondi



  48. Flavio
    gennaio 27th, 2013

    Vorrei utilizzare il plugin reCaptcha: avete dei suggerimenti su come fare?
    Io l’ho aggiunto ma anche se premo su invia senza inserire il codice di verifica, l’email viene inviata lo stesso.
    Ho fatto come c’è scritto qui.

    Rispondi



  49. marco
    marzo 1st, 2013

    Ciao,poso usare indirizio email externo nel server? tipo: $to=name@yahoo.it??

    Rispondi



  50. silvia
    marzo 25th, 2013

    Ciao, purtroppo stesso problema di cui sopra… inviato con successo ma non arriva nulla via email (che ho inserito nel file mail.php). Come è possibile risolvere?

    Grazie!!

    Rispondi



  51. pgtychernye
    aprile 10th, 2013

    $32MLouisVuittonOwningShowsLimitsWithRegardsToIspSafeContains,[url=http://www.vuittontenpo.com/]http://www.vuittontenpo.com[/url],PurchasingALuxuryLouisVuittonBag,http://www.vuittontenpo.com,TheSecretsBehindAffordableLouisVuittonSituation

    Rispondi



  52. barbara
    aprile 17th, 2013

    Ciao, volevo creare un form mail usando solo con HTML, ho fatto le prove ma le mail non mi arrivano nella casella di posta elettronica…come devo fare? Non c’è la possibiltà di creare solo HTML?

    Rispondi



  53. enzo tersigni
    maggio 19th, 2013

    Soluzione al problema dell’apostrofo che non fa partire il messaggio:
    cambiare la seguente stringa:
    + ‘&messaggio=’ + encodeURIComponent(messaggio);

    con la seguente:
    + ‘&messaggio=’ + messaggio.replace(/’/g, ‘”‘);

    (N.B. tra le parentesi c’è nell’ordine: barra apostrofo barra g virgola spazio apostrofo virgolette apostrofo).
    Al posto dell’apostrofo nel messaggio che riceverete ci saranno le virgolette!
    Spero sarà utile a qualcuno, a me è costato 1 giorno intero di studio (di domenica tra l’altro) :-)

    Rispondi