• 27-05-2021, 20:19:27
    #1
    Ziyaretçi sayfada bulunan soruları cevapladıktan sonra hesaplama yapılıyor. Hesaplama yapıldıktan sonra sayfaya sonuç ekranı beliriyor.

    function sonuc() {
    message="Sonuçlar:n"

    İstediğim, sonuçlandıktan sonra istediğim mail adresine sonucu göndermek.
    Ziyaretçi adı
    Soyadı:
    Sonuç :

  • 27-05-2021, 20:26:34
    #2
    AJAX kullanabilirsiniz.
  • 27-05-2021, 20:55:15
    #3
    ahmetkucukonder adlı üyeden alıntı: mesajı görüntüle
    AJAX kullanabilirsiniz.

    Hocam bana faydalanabileceğim kaynak gösterebilir misiniz ? Hazır kod da olabilir.

    İstediğim bir test çözülecek ekrana sonuç çıkarıyor bu sonuç hem ekrana hemde belirtilen mail adresine iletilecek
  • 28-05-2021, 22:06:59
    #4
    Testi bitir butonuna tıklanıldığı zaman mailer'ı çalıştırabilirsiniz.

    index.html (JQuery Gerektirir)
    <script>
      $('#finish').click(function() {
        var result = sonucuDondurenFonksiyon();
            $.ajax({
              type: "POST",
              url: "sendmail.php",
              data: {
                sonuc: result
              },
              success: function(response) {
                if (response == 'success') {
                  $('#sonucdiv').html('<p>Sonuç:'+result+'</p>');
                }
              }
            })
      });
    </script>
    sendmail.php (PHPMailer Gerektirir)
    <?php
    if(isset($_POST['sonuc'])){ //"sonuc" postumuz gelmiyorsa sayfayı çalıştırmaya gerek yok
    /* Mailer Hazırlıkları */
    use PHPMailerPHPMailerPHPMailer;
    use PHPMailerPHPMailerSMTP;
    use PHPMailerPHPMailerException;
    require 'vendor/autoload.php';
    /* Mailer Hazırlıkları */
    
    $mail = new PHPMailer(true);
    $sonuc = $_POST['sonuc'];
    
    try {
        $mail->isSMTP();                                            //Send using SMTP
        $mail->Host       = 'smtp.gmail.com';                     //Set the SMTP server to send through
        $mail->SMTPAuth   = true;                                   //Enable SMTP authentication
        $mail->Username   = 'user@gmail.com';                     //SMTP username
        $mail->Password   = 'pass';                               //SMTP password
        $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS ;         //Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
        $mail->Port       = 465;                                    //TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
    
        $mail->setFrom('user@gmail.com', 'Mailer'); //Kimden
        $mail->addAddress('hedefmail@example.net', 'User');     //Kime
    
        //Content
        $mail->isHTML(true);                                  //Set email format to HTML
        $mail->Subject = 'Konu;
        $mail->Body    = 'Sınav sonucu:' . $sonuc;
        $mail->send();
        echo 'success';
    } catch (Exception $e) {
        echo 'error';
    }
    }
    exit;
    ?>
    JS'de sonuç fonksiyonunuz gerekli işlemleri yaptıktan sonra sadece sonucu return etmelidir, ajax kodumuz success döndürdüğü zaman sonucu p etiketimiz ile beraber yazdırıyoruz. İsterseniz click edildiğinde de sonucu yazdırabilirsiniz, mail işlemi arkaplanda gerçekleştirilir işlemin durumu ne olursa olsun kullanıcıya sonuç gösterilir.
  • 28-05-2021, 22:31:17
    #5
    Hocam bunu çalıştırabilir isem size gerçekten çok teşekkür edeceğim.Ayrıca bana faydalanabileceğim hazır kod, fikir edinebilir bir yer veya kaynak bir şey gösterebilir misiniz.



    ahmetkucukonder adlı üyeden alıntı: mesajı görüntüle
    Testi bitir butonuna tıklanıldığı zaman mailer'ı çalıştırabilirsiniz.

    index.html (JQuery Gerektirir)
    <script>
      $('#finish').click(function() {
        var result = sonucuDondurenFonksiyon();
            $.ajax({
              type: "POST",
              url: "sendmail.php",
              data: {
                sonuc: result
              },
              success: function(response) {
                if (response == 'success') {
                  $('#sonucdiv').html('<p>Sonuç:'+result+'</p>');
                }
              }
            })
      });
    </script>
    sendmail.php (PHPMailer Gerektirir)
    <?php
    if(isset($_POST['sonuc'])){ //"sonuc" postumuz gelmiyorsa sayfayı çalıştırmaya gerek yok
    /* Mailer Hazırlıkları */
    use PHPMailerPHPMailerPHPMailer;
    use PHPMailerPHPMailerSMTP;
    use PHPMailerPHPMailerException;
    require 'vendor/autoload.php';
    /* Mailer Hazırlıkları */
    
    $mail = new PHPMailer(true);
    $sonuc = $_POST['sonuc'];
    
    try {
        $mail->isSMTP();                                            //Send using SMTP
        $mail->Host       = 'smtp.gmail.com';                     //Set the SMTP server to send through
        $mail->SMTPAuth   = true;                                   //Enable SMTP authentication
        $mail->Username   = 'user@gmail.com';                     //SMTP username
        $mail->Password   = 'pass';                               //SMTP password
        $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS ;         //Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
        $mail->Port       = 465;                                    //TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
    
        $mail->setFrom('user@gmail.com', 'Mailer'); //Kimden
        $mail->addAddress('hedefmail@example.net', 'User');     //Kime
    
        //Content
        $mail->isHTML(true);                                  //Set email format to HTML
        $mail->Subject = 'Konu;
        $mail->Body    = 'Sınav sonucu:' . $sonuc;
        $mail->send();
        echo 'success';
    } catch (Exception $e) {
        echo 'error';
    }
    }
    exit;
    ?>
    JS'de sonuç fonksiyonunuz gerekli işlemleri yaptıktan sonra sadece sonucu return etmelidir, ajax kodumuz success döndürdüğü zaman sonucu p etiketimiz ile beraber yazdırıyoruz. İsterseniz click edildiğinde de sonucu yazdırabilirsiniz, mail işlemi arkaplanda gerçekleştirilir işlemin durumu ne olursa olsun kullanıcıya sonuç gösterilir.