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:
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>
qui il file PHP:
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.";
}
?>
infine il javascript per la conferma di avvenuto invio e segnalazione errori:
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);
}
});
}
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.
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.