• 04-08-2025, 17:59:42
    #10
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Bu şekilde denersen mail_logs.txt isimli txt oluşturur ve içine adım adım hataları yazar sorunun neyden kaynaklandığını daha kolay öğrenirsiniz
    <!doctype html>
    <html lang="tr">
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <!-- Bootstrap CSS -->
        <script src="https://www.google.com/recaptcha/api.js?hl=tr"></script>
        <link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
      </head>
      <body>
     
        <!-- Bootstrap Responsive İletişim Formu Start *** -->
        <br /> <!-- Bir satır boşluk -->
        <h1 style="text-align:center;">İletişim Formu</h1> <!-- Form başlığı -->
        <br /> <!-- Bir satır boşluk -->
        <div class="container-fluid">
            <div class="row">
                <div class="col-md-4"></div> <!-- 4 sütun Sol Tarafa Boş Verdik -->
                <div class="col-md-4"> <!-- 4 Sütun Ortaladık Başlangıcı -->
            
                    <form action="iletisim.php" method="post"> <!-- Form Başlangıcı -->
     
                        <div class="form-group"> <!-- Ad Soyad Text Alanı -->
                            <input required="required" name="AdiSoyadi" id="name" type="text" class="form-control" placeholder="Adınız ve Soyadınız">
                            <small class="form-text text-muted">Lütfen adınızı ve soyadınızı girin.</small>
                        </div> <!-- Ad Soyad Text Alanı Bitti -->
     
                        <div class="form-group"> <!-- Mail Adresi Text Alanı -->
                            <input required="required" name="MailAdresi" type="email" class="form-control" placeholder="E-Posta Adresiniz">
                            <small class="form-text text-muted">Lütfen mail adresinizi girin.</small>
                        </div> <!-- Mail Adresi Text Alanı Bitti -->
     
                        <div class="form-group"> <!-- Mesaj Konusu Text Alanı -->
                            <input required="required" name="MesajKonusu" type="text" class="form-control" placeholder="Mesajınızın Konusu">
                            <small class="form-text text-muted">Lütfen mesajınızın konusunu girin.</small>
                        </div> <!-- Mesaj Konusu Text Alanı Bitti -->
     
                        <div class="form-group"> <!-- Mesaj Text Alanı -->
                            <textarea rows="6" cols="10" name="Mesaj" required="required" class="form-control" placeholder="Mesajınızını Yazın"></textarea>
                        </div> <!-- Mesaj Text Alanı Bitti -->
                        <div class="form-group">
                         <div class="g-recaptcha" data-sitekey="6LddeJMrAAAAANw5XOIXSBgiIoAdGC22L42rrToG"></div>
                        </div>
                                
     
                        <button type="submit" onclick="btnkaldir()" id="gonder" class="btn btn-primary" >Gönder</button> <!-- Form Gönderme Butonu -->
                        <button type="reset" class="btn btn-success">Temizle</button> <!-- Form Temizleme Butonu -->
                  
     
                    </form> <!-- Form Bitiş -->
     
                </div> <!-- 6 Sütun Ortaladık Tamamlandı -->
                <div class="col-md-4"></div> <!-- 4 sütun Sol Tarafa Boş Verdik -->
            </div>
        </div>
        <!-- Bootstrap Responsive İletişim Formu End *** -->
     
      </body>
    </html>
     
    <script>
    function btnkaldir()
    {
      var x = document.getElementById("gonder");
       x.style.display = "none";
    }
    </script>
     
    <?php
    // LOG FONKSİYONU
    function writeLog($message) {
        $logFile = 'mail_logs.txt';
        $timestamp = date('Y-m-d H:i:s');
        $logMessage = "[$timestamp] $message" . PHP_EOL;
        file_put_contents($logFile, $logMessage, FILE_APPEND | LOCK_EX);
        echo "<div class='alert alert-info'>LOG: $message</div>";
    }
    
    // Hata raporlama açık (geliştirme aşamasında)
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    writeLog("Script başlatıldı");
    
    // POST verisi gelip gelmediğini kontrol et
    if ($_POST) {
        writeLog("POST verisi alındı: " . print_r($_POST, true));
    } else {
        writeLog("POST verisi yok, form henüz gönderilmemiş");
    }
    
    //Form'dan Bütün Değerler Post Methodu ile Çekiliyor
    $AdiSoyadi = isset($_POST['AdiSoyadi']) ? trim(strip_tags($_POST['AdiSoyadi'])) : '';
    $MailAdresi = isset($_POST['MailAdresi']) ? trim(strip_tags($_POST['MailAdresi'])) : '';
    $MesajKonusu = isset($_POST['MesajKonusu']) ? trim(strip_tags($_POST['MesajKonusu'])) : '';
    $Mesaj = isset($_POST['Mesaj']) ? trim(strip_tags($_POST['Mesaj'])) : '';
    
    writeLog("Form verileri alındı - Ad: '$AdiSoyadi', Mail: '$MailAdresi', Konu: '$MesajKonusu'");
    
    //Form'dan Bütün Değerler Post Methodu ile Çekiliyor Tamamlandı
     
    if($AdiSoyadi && $MailAdresi && $MesajKonusu && $Mesaj){ //Form'dan bütün değerler geliyorsa mail gönderme işlemini başlatıyoruz.
        
        writeLog("Tüm form alanları dolu, mail gönderme işlemi başlatılıyor");
        
        // RECAPTCHA KONTROLÜ
        writeLog("reCAPTCHA kontrolü başlıyor");
        
        if (isset($_POST['g-recaptcha-response'])) {
            $captcha = $_POST['g-recaptcha-response'];
            writeLog("reCAPTCHA response alındı: " . substr($captcha, 0, 20) . "...");
        } else {
            writeLog("reCAPTCHA response bulunamadı");
            $captcha = '';
        }
        
        if (!$captcha) {
            writeLog("reCAPTCHA boş, işlem durduruluyor");
            echo '<script>alert("Lütfen robot olmadığınızı doğrulayın.");</script>';
            exit;
        }
        
        // reCAPTCHA doğrulama
        $secretKey = "6LddeJMrAAAAANw5XOIXSBgiIoAdGC22L42rrToG"; // Bu secret key olmalı, site key değil!
        $verifyURL = "https://www.google.com/recaptcha/api/siteverify?secret=" . $secretKey . "&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR'];
        
        writeLog("reCAPTCHA doğrulama URL'si hazırlandı");
        
        $kontrol = file_get_contents($verifyURL);
        writeLog("reCAPTCHA API'dan gelen cevap: " . $kontrol);
        
        $kontrol = json_decode($kontrol);
        
        if ($kontrol->success == false) {
            writeLog("reCAPTCHA doğrulaması başarısız: " . print_r($kontrol, true));
            echo '<script>alert("reCAPTCHA doğrulaması başarısız!");</script>';
            exit;
        } else {
            writeLog("reCAPTCHA doğrulaması başarılı");
        }
        
        // PHPMailer dosyalarının varlığını kontrol et
        if (!file_exists('phpmail/class.phpmailer.php')) {
            writeLog("HATA: phpmail/class.phpmailer.php dosyası bulunamadı!");
            echo '<div class="alert alert-danger">PHPMailer dosyası bulunamadı!</div>';
            exit;
        }
        
        if (!file_exists('phpmail/class.smtp.php')) {
            writeLog("HATA: phpmail/class.smtp.php dosyası bulunamadı!");
            echo '<div class="alert alert-danger">SMTP dosyası bulunamadı!</div>';
            exit;
        }
        
        writeLog("PHPMailer dosyaları kontrol edildi, mevcut");
     
        //Php Smtp Mailler Sınıfını Sayfaya Dahil Ediyoruz
        include ('phpmail/class.phpmailer.php');
        include ('phpmail/class.smtp.php');
        writeLog("PHPMailer sınıfları dahil edildi");
        
        //Mail Bağlantı Ayarları
        //Mail Hangi Hesaptan Gönderilecek ise onun bilgilerini yazın.
        $MailSmtpHost = "smtp.gmail.com";
        $MailUserName = "benimmailim@gmail.com"; // GERÇEK MAİL ADRESİNİ YAZ
        $MailPassword = "benimmailim"; // GERÇEK ŞİFREYİ VEYA APP PASSWORD YAZ
        //Mail Bağlantı Ayarları Tamamlandı
        
        writeLog("Mail ayarları tanımlandı - Host: $MailSmtpHost, User: $MailUserName");
     
        //Doldurulan Form Mail Olarak Kime Gidecek?
        $MailKimeGidecek = "benimmailim@gmail.com"; // GERÇEK MAİL ADRESİNİ YAZ
        writeLog("Alıcı mail adresi: $MailKimeGidecek");
        
        try {
            writeLog("PHPMailer nesnesi oluşturuluyor");
            $mail = new PHPMailer(true); // true parametresi exception fırlatır
            
            writeLog("SMTP ayarları yapılıyor");
            $mail->IsSMTP();
            $mail->SMTPAuth = true;
            $mail->Host = $MailSmtpHost;
            $mail->SMTPSecure = 'tls';
            $mail->Port = 587;
            $mail->Username = $MailUserName;
            $mail->Password = $MailPassword;
            
            // Debug modunu aç
            $mail->SMTPDebug = 2; // Detaylı debug
            $mail->Debugoutput = function($str, $level) {
                writeLog("SMTP Debug: $str");
            };
            
            writeLog("Gönderici ve alıcı ayarları yapılıyor");
            $mail->SetFrom($mail->Username, 'İletişim Formu');
            $mail->AddAddress($MailKimeGidecek, 'Alıcı');
            
            writeLog("Mail içeriği hazırlanıyor");
            $mail->CharSet = 'UTF-8';
            $mail->Subject = $MesajKonusu;
            $mail->MsgHTML("Ad: "."$AdiSoyadi". "<br />" ."E-Posta: "."$MailAdresi". "<br />" ."Mesaj: "."$Mesaj");
            
            writeLog("Mail gönderiliyor...");
            
            if($mail->Send()) {    
                writeLog("Mail başarıyla gönderildi!");
                echo '<script>alert("Mail gönderildi!");</script>';
                header("Refresh: 0;");
            } else {
                writeLog("Mail gönderilemedi: " . $mail->ErrorInfo);
                echo '<div class="alert alert-danger">Mail gönderilemedi: ' . $mail->ErrorInfo . '</div>';
            }
            
        } catch (Exception $e) {
            writeLog("PHPMailer Exception: " . $e->getMessage());
            echo '<div class="alert alert-danger">Mail gönderilirken hata: ' . $e->getMessage() . '</div>';
        }
            
    } else {
        if ($_POST) {
            writeLog("Form alanları eksik - Ad: '$AdiSoyadi', Mail: '$MailAdresi', Konu: '$MesajKonusu', Mesaj uzunluğu: " . strlen($Mesaj));
            echo '<div class="alert alert-warning">Lütfen tüm alanları doldurun!</div>';
        }
    }
    
    writeLog("Script sonu");
    ?>
    
    <style>
    .alert {
        margin: 10px;
        padding: 10px;
        border-radius: 5px;
    }
    .alert-info {
        background-color: #d1ecf1;
        border-color: #bee5eb;
        color: #0c5460;
    }
    .alert-danger {
        background-color: #f8d7da;
        border-color: #f5c6cb;
        color: #721c24;
    }
    .alert-warning {
        background-color: #fff3cd;
        border-color: #ffeaa7;
        color: #856404;
    }
    </style>
    HTTP ERROR 500 hatası veriyor hocam
  • 04-08-2025, 18:00:08
    #11
    Zenith Capital adlı üyeden alıntı: mesajı görüntüle
    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    require 'phpmail/PHPMailer.php';
    require 'phpmail/SMTP.php';
    require 'phpmail/Exception.php';
    
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\SMTP;
    use PHPMailer\PHPMailer\Exception;
    
    $AdiSoyadi = trim(strip_tags($_POST['AdiSoyadi']));
    $MailAdresi = trim(strip_tags($_POST['MailAdresi']));
    $MesajKonusu = trim(strip_tags($_POST['MesajKonusu']));
    $Mesaj = trim(strip_tags($_POST['Mesaj']));
    
    if($AdiSoyadi && $MailAdresi && $MesajKonusu && $Mesaj) {
        
        $MailSmtpHost = "smtp.gmail.com";
        $MailUserName = "benimmailim@gmail.com";
        $MailPassword = "benimmailim";
        $MailKimeGidecek = "benimmailim@gmail.com";
        
        if (isset($_POST['g-recaptcha-response'])) {
            $captcha = $_POST['g-recaptcha-response'];
        }
        
        if (!$captcha) {
            echo '<script>alert("Lütfen robot olmadığınızı doğrulayın.");</script>';
            exit;
        }
        
        $kontrol = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=6LddeJMrAAAAANw5XOIXSBgiIoAdGC22L42rrToG&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']);
        $kontrol = json_decode($kontrol);
        
        if ($kontrol->success == false) {
            echo 'reCAPTCHA doğrulaması başarısız.';
        } else {
            try {
                $mail = new PHPMailer(true);
                $mail->IsSMTP();
                $mail->SMTPAuth = true;
                $mail->Host = $MailSmtpHost;
                $mail->SMTPSecure = 'tls';
                $mail->Port = 587;
                $mail->Username = $MailUserName;
                $mail->Password = $MailPassword;
                $mail->SetFrom($mail->Username, 'İletişim');
                $mail->AddAddress($MailKimeGidecek, 'Benim Adım');
                $mail->CharSet = 'UTF-8';
                $mail->Subject = $MesajKonusu;
                $mail->MsgHTML("Ad: $AdiSoyadi<br />E-Posta: $MailAdresi<br />Mesaj: $Mesaj");
                
                if($mail->Send()) {
                    echo '<script>alert("Mail gönderildi!");</script>';
                    header("Refresh: 0;");
                }
            } catch (Exception $e) {
                echo "Mail gönderilirken hata oluştu: {$mail->ErrorInfo}";
            }
        }
    }
    ?>
    HTTP ERROR 500 veriyor hocam
  • 04-08-2025, 19:04:46
    #12
    Kurumsal PLUS
    webkolikabi adlı üyeden alıntı: mesajı görüntüle
    bu hatayı verdi hocam HTTP ERROR 500
    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    // Composer kullanıyorsanız
    require_once 'vendor/autoload.php';
    
    // Manuel yükleme için
    require_once __DIR__ . '/phpmail/PHPMailer.php';
    require_once __DIR__ . '/phpmail/SMTP.php';
    require_once __DIR__ . '/phpmail/Exception.php';
    
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\SMTP;
    use PHPMailer\PHPMailer\Exception;
    
    // POST kontrolü
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $AdiSoyadi = trim(strip_tags($_POST['AdiSoyadi'] ?? ''));
        $MailAdresi = trim(strip_tags($_POST['MailAdresi'] ?? ''));
        $MesajKonusu = trim(strip_tags($_POST['MesajKonusu'] ?? ''));
        $Mesaj = trim(strip_tags($_POST['Mesaj'] ?? ''));
    
        if($AdiSoyadi && $MailAdresi && $MesajKonusu && $Mesaj) {
            
            // reCAPTCHA kontrolü
            if (!isset($_POST['g-recaptcha-response']) || empty($_POST['g-recaptcha-response'])) {
                die('Lütfen robot olmadığınızı doğrulayın.');
            }
            
            $captcha = $_POST['g-recaptcha-response'];
            $secretKey = "6LddeJMrAAAAANw5XOIXSBgiIoAdGC22L42rrToG";
            
            $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=' . $secretKey . '&response=' . $captcha);
            $responseData = json_decode($verifyResponse);
            
            if ($responseData->success) {
                try {
                    $mail = new PHPMailer(true);
                    $mail->isSMTP();
                    $mail->Host = 'smtp.gmail.com';
                    $mail->SMTPAuth = true;
                    $mail->Username = 'benimmailim@gmail.com';
                    $mail->Password = 'benimmailim';
                    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
                    $mail->Port = 587;
                    
                    $mail->setFrom($mail->Username, 'İletişim Formu');
                    $mail->addAddress('benimmailim@gmail.com', 'Admin');
                    $mail->isHTML(true);
                    $mail->Subject = $MesajKonusu;
                    $mail->Body = "<strong>Ad:</strong> $AdiSoyadi<br><strong>E-Posta:</strong> $MailAdresi<br><strong>Mesaj:</strong> $Mesaj";
                    
                    $mail->send();
                    echo '<script>alert("Mail başarıyla gönderildi!"); window.location.href=""; </script>';
                    
                } catch (Exception $e) {
                    echo "Mail gönderme hatası: {$mail->ErrorInfo}";
                }
            } else {
                echo 'reCAPTCHA doğrulaması başarısız.';
            }
        } else {
            echo 'Lütfen tüm alanları doldurun.';
        }
    } else {
        echo 'Geçersiz istek.';
    }
    ?>
  • 04-08-2025, 21:28:39
    #13
    php selectörden display_error seçeneğini aktif ederseniz 500'ün sebebini görebilirsiniz
    • webkolikabi
    webkolikabi bunu beğendi.
    1 kişi bunu beğendi.