ciao a tutti!
ho fatto un modulo per la richiesta di informazioni per un sito di un mio cliente, ma testandolo ho notato che mi da 2 problemi:
1) di tutti i campi compilati l'unico che viene riportato è l'email, gli altri sono vuoti. inoltre ho anche usato un js per far si che tutti i campi siano compilati, altrimenti mi dà errore e non invia. quindi non so perche mi invia email quasi vuote.
2) per ogni mail inviata dal sito ne ricevo 2 identiche.
siccome sono giorni che sto perdendo la vista alla ricerca di qualche errore di sintassi e sto rischiando di impazzire vi posto il codice, nella speranza che qualcuno con gli occhi più "abituati" possa tirarmi fuori dalla pazzia certa...
Qui il codice del form:
qui il file PHP:codice:<article id="content"> <div class="wrapper"> <h2>Contattaci</h2> <div id="response" style="display:none;border:1px solid #ccc:padding:10px;background:#f4f4f4; color:#000;"></div> <form name="form1" method="post" action="mail.php" id="ContactForm"> <div> <div class="wrapper"> <span class="color3">Nome:</span> <div class="bg" style="border:thick #CCC"><input name="nome" type="text" id="nome" class="input"></div> </div> <div class="wrapper"> <span class="color3">Oggetto:</span> <div class="bg" style="border:thick #CCC"><input name="oggetto" type="text" id="oggetto" class="input"></div> </div> <div class="wrapper"> <span class="color3">Email:</span> <div class="bg" style="border:thick #CCC"><input name="mail" type="text" id="mail" class="input"></div> </div> <div class="textarea_box"> <span class="color3">Comments:</span> <div class="bg" style="border:thick #CCC"><textarea name="testo" id="testo" cols="40" rows="10"></textarea></div> </div> <a><input class="button1" id="sendmail" name="Submit" type="submit" value="Invio"></a> Cancella </div> </form> </div> </article>
infine il javascript per la conferma di avvenuto invio e segnalazione errori:Codice PHP:<?php
// L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
$to = "miamail@miosito.ext";
// IL SOGGETTO DELLA MAIL
$subject = "Messaggio inviato tramite sito icpetroleumsrl.com";
// COSTRUZIONE DEL CORPO DEL MESSAGGIO
$body = "Contenuto del messaggio:\n\n";
$body .= "Da: " . trim(stripslashes($_POST["nome"])) . "\n";
$body .= "mail: " . trim(stripslashes($_POST["mail"])) . "\n";
$body .= "Oggetto: " . trim(stripslashes($_POST["oggetto"])) . "\n";
$body .= "testo: " . trim(stripslashes($_POST["testo"])) . "\n";
// INTESTAZIONI SUPPLEMENTARI
// INVIO DELLA MAIL
if(@mail($to, $subject, $body)) { // SE L'INOLTRO E' ANDATO A BUON FINE...
echo "La mail è stata inoltrata con successo.";
} else {// ALTRIMENTI...
echo "Si sono verificati dei problemi nell'invio della mail.";
}
?>
il codice non l'ho scritto da zero, ma ho adattato un altro codice alle mie esigenze, quindi è probabile che abbia saltato qualche piccolezza nell'integrare, ma non riesco a vederla.codice:$(document).ready(function(){ $("#sendmail").click(function(){ var valid = ''; var isr = ' e obbligatorio.'; var name = $("#nome").val(); var mail = $("#mail").val(); var subject = $("#oggetto").val(); var text = $("#testo").val(); if (name.length<1) { valid += ' Nome'+isr; } if (!mail.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) { valid += ' A valid Email'+isr; } if (subject.length<1) { valid += ' Subject'+isr; } if (text.length<1) { valid += ' Text'+isr; } if (valid!='') { $("#response").fadeIn("slow"); $("#response").html("Error:"+valid); } else { var datastr ='name=' + name + '&mail=' + mail + '&subject=' + subject + '&text=' + text; $("#response").css("display", "block"); $("#response").html("Sending message .... "); $("#response").fadeIn("slow"); setTimeout("send('"+datastr+"')",2000); } return false; }); }); function send(datastr){ $.ajax({ type: "POST", url: "mail.php", data: datastr, cache: false, success: function(html){ $("#response").fadeIn("slow"); $("#response").html(html); setTimeout('$("#response").fadeOut("slow")',2000); } }); }
ovviamente i tre codici qui sopra sono "separati", nel senso che ho la pagina di contatti (contatti.php) il php per l'invio mail (mail.php) e il js per gli errori (ajax.js).
grazie in anticipo a chi vorrà darmi una mano.

Rispondi quotando