• 29-03-2022, 09:30:52
    #1
    Merhaba,

    HTML ile tasarlanan statik bir internet sitemiz var. İnternetten araştırdığım kodlarla bir iletişim formu uyarlaması yaptım. İletişim formundan veri gönderildiğinde action'da belirtilen php sayfasına yönlendirme yapıyor ve "mesajınız gönderildi" uyarısı bu sayfada çıkıyor. Yönlendirme işleminin olmasını istemiyorum, kullanıcı gönder butonuna tıkladığında mesaj gönderildi diye bir uyarı çıkmasını istiyorum. Hangi yolu izlemeliyim?

    <?php
    if(isset($_POST['ad']) && isset($_POST['eposta']) && isset($_POST['mesaj'])) {
        function epostakontrol($email){if (filter_var($email, FILTER_VALIDATE_EMAIL)){return 1;} else {return 0;}} 
        $gelen_mail = $_POST['eposta']; $mail_kontol=epostakontrol($gelen_mail);
        
       if(empty($_POST['ad']) || empty($_POST['eposta']) || empty($_POST['mesaj'])) {
          echo 'Lütfen boş yer bırakmayın.';
       } else if($mail_kontol == "0"){echo 'Lütfen e-posta adresini doğru girin.';} else{
          include 'class.phpmailer.php';
                $mail = new PHPMailer();
                $mail->IsSMTP();
                $mail->SMTPAuth = true;
                $mail->Host = 'mail.site.com';
                $mail->Port = 587;
                $mail->Username = 'iletisim@site.com';
                $mail->Password = '123456';
                $mail->SetFrom($mail->Username, $_POST['ad']);
                $mail->AddAddress('deneme@yahoo.com', 'Deneme');
                $mail->CharSet = 'UTF-8';
                $mail->Subject = $_POST["ad"];
                $mail->MsgHTML('İsim:'.$_POST["ad"].'<br/>
                                E-Posta:'.$_POST["eposta"].'<br/>
                                Mesaj:'.$_POST["mesaj"].'<br/>');
    if($mail->Send()) { echo 'Mesajınız başarıyla gönderildi.';} 
    else { echo 'Mesaj gönderirken bir hata oluştu ve girmiş olduğunuz bilgiler alınamadı.' . $mail->ErrorInfo;}
       }}
    ?>
  • 29-03-2022, 09:42:49
    #2
    Ajax kullanarak yapabilirsin
  • 29-03-2022, 09:45:22
    #3
    Jquery post işlemi gerekiyor.
  • 30-03-2022, 08:27:13
    #4
    ajax.js diye bir dosya oluşturup kodları kayıt edin post işleminiz başarılı ise sweetalert ile uyarı verebilirsiniz.
    function mesajgonder(){
    
        var deger = $("#iletisimformu").serialize();
        $.ajax({
    
            type : "POST",
            url  : url+"/iletisim.html",
            data : deger,
            success : function (sonuc) {
    
                if($.trim(sonuc) == "bos"){
                    swal("Hata","Lütfen tüm alanları doldurun","error");
                }else if($.trim(sonuc) == "format"){
                    swal("Hata","E-posta formatı yanlış","error");
                }else if($.trim(sonuc) == "hata"){
                    swal("Hata","Sistem hatası oluştu","error");
                }else if($.trim(sonuc) == "basarili"){
                    swal("Başarılı","Mesajınız alınmıştır. En kısa sürede dönüş sağlanacaktır","success");
                    $("input[name=ad]").val('');
                    $("input[name=eposta]").val('');
                    $("input[name=konu]").val('');
                    $("textarea[name=mesaj]").val('');
                }
    
            }
    
        });
    
    }