İletişim Formu Çoklu Mail Yollama Sorunu

Merhaba arkadaşlar,

benim php smtp ile mail gönderen bir iletişim formum var, mail gönderildikten sonra sayfanın altında mail gönderildi diye yazı çıkıyor, fakat form doluyor kalıyor ve sayfa yenilenmediği için millet tekrar tekrar gönderme buttonuna basıyor ve aynı maili bir kaç defa yolluyor.

 

nasıl bir çözüm bulabiliriz ?

ilgili kod :

$mail->MsgHTML($content);
if(!$mail->Send())
{
   echo "<center>Error! Its wrong!</center>";
   echo "Mailer Error: " . $mail->ErrorInfo;
    echo "<center><p><input type='submit' onclick='gostergizle();' value='Back' /></p></center>";
   exit;
}
echo "<center>Thank you! Your message has reached us! <p><input type='submit' onclick='gostergizle();' value='Back' /></p></center>";
 } else {
 echo "<center>Please check Security Code! <p><input type='submit' onclick='gostergizle();' value='Back' /></p></center>";
 }
}

 

Bunun birden fazla yöntemi var en basiti ama az sağlıklı olanı. en sağlıklı şekli jqueryle yapmaktır.
Bu kodu veriler post edildikten sonra ki aşamaya yaz sorunun çözülecektir.

if ($_SERVER['REQUEST_METHOD']=='POST') {
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}

 

Teşekkürler cevap için,

dediğinizi yapınca mail gönderildi mesajı göstermiyor.

ilgili kodun tamamı:

<?php
session_start();
if ( isset($_POST['guvenlikKodu']) && $_POST['guvenlikKodu'] ){
 $guvenlikKontrol = false;
 if ( $_POST['guvenlikKodu'] == $_SESSION['guvenlikKodu'] ){
 $guvenlikKontrol = true;
 }
 
 if ( $guvenlikKontrol ){

$text=$_POST['text'];
$name=$_POST['name'];
$phone=$_POST['phone'];
$email=$_POST['email'];
$subject=$_POST['subject'];
$web=$_POST['web'];
$domain=$_SERVER['HTTP_HOST'];
$ipadress=$_SERVER['REMOTE_ADDR'];
$date = date("d.m.Y"); 
$time = date("H:i:s"); 	
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host     = "mail.sitemiz.com"; // SMTP servers
$mail->SMTPAuth = true;     // turn on SMTP authentication
$mail->Username = "bilgi@sitemiz.com";  // SMTP username
$mail->Password = "sifremiz"; // SMTP password
$mail->From     = "bilgi@sitemiz.com"; // it must be a match with SMTP username
$mail->CharSet = 'UTF-8'; // SMTP dil sorunu
$mail->Fromname = "sitemiz"; // from name
$mail->AddAddress("bilgi@sitemiz.com","Tedi Group"); // SMTP username , Name Surname
$mail->Subject  =  $_POST['subject'];
$content = "<h2>Mesajiniz var $domain</h2>  
<p><b>Isim:</b>$name</p> 
<p><b>E-Mail:</b>$email</p> 
<p><b>Tel:</b>$phone</p> 
<p><b>Konu:</b>$subject</p> 
<p><b>Website: $web</b> </p> 
<p><b>Mesaj:</b>$text</p>
<p><h5>Tarih: $date . $time </h5></p>
<p><h5>IP Adresi: $ipadress</h5> </p>";
$mail->MsgHTML($content);
if(!$mail->Send())
{
   echo "<center>Hata! Ters giden birÅ&#376;ey var!</center>";
   echo "Mailer hatası: " . $mail->ErrorInfo;
    echo "<center><p><input type='submit' onclick='gostergizle();' value='Back' /></p></center>";
   exit;
}
echo "<center>Te&#351;ekkürler! Mailiniz alındı! <p><input type='submit' onclick='gostergizle();' value='Geri Dön' /></p></center>";
 } else {
 echo "<center>Lütfen güvenlik kodunu kontrol edin! <p><input type='submit' onclick='gostergizle();' value='Geri Dön' /></p></center>";
 }
}
?>
 <script type="text/javascript"> 
function gostergizle()
{
$("div#container").show(100); 
}
function sendmessage(){ 
var veriler = $('#contact_form').serialize(); 
$.ajax({ 
type: "POST", 
url: "inc/send.php", 
data: veriler, 
success:function(cevap){ 
$("#send").html(""+cevap); 
$("div#container").hide(100); 
} 
})}; 
function formReset(id) {
$('#'+id).each(function(){
this.reset();
});
}
function kontrolet(){
var name=$('#name').val();
name=jQuery.trim(name);
var email=$('#email').val();
email=jQuery.trim(email);
var mess=$('#text').val();
mess=jQuery.trim(mess);
var tel=$('#phone').val();
tel=jQuery.trim(tel);
var guvenlikKodu=$('#guvenlikKodu').val();
guvenlikKodu=jQuery.trim(guvenlikKodu);        
if(name==''){
alert("Please check your name");
} 	
else if(email==''){
alert("Please check your E-Mail");
}
 else if (tel==''){
alert("Please check your Phone");
}
 else if (guvenlikKodu==''){
alert("Security code is empty!");
}
  else if(mess==''){
alert("Please check your Message");
}
else { sendmessage() } 
}
</script>           

 

Mail gönderme işleminde AJAX kullanıyor musunuz?

İf döngüsünde mesajı gösteriyorsun ya onun altına yaz sorunun çözülür.

Cevap Yaz

Cevap yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git