• 04-11-2023, 20:17:29
    #1
    <?php
    require_once('config/config.php');
    require 'config/PHPMailer-master/src/PHPMailer.php';
    require 'config/PHPMailer-master/src/SMTP.php';
    require 'config/PHPMailer-master/src/Exception.php';
    
    // Sayfa başlığı ayarı
    $title = "Şifremi Unuttum - $siteName";
    
    include('config/head.php');
    include('config/nav.php');
    
    // Şifre Sıfırlama İsteği Oluşturma (İsteğin Gönderildiği Sayfa)
    if (isset($_POST['forgot_password'])) {
        $email = $_POST['email'];
        $requester_ip = $_SERVER['REMOTE_ADDR']; // Kullanıcının IP adresini al
    
        $token = bin2hex(random_bytes(32)); // Rastgele bir sıfırlama tokeni oluşturun
    
        // Kullanıcıyı token ile ilişkilendirin ve token'in süresini belirleyin (örneğin 15 dakika)
        $sql = "INSERT INTO password_resets (email, token, created_at, requester_ip) VALUES (?, ?, NOW(), ?)";
        $stmt = $pdo->prepare($sql);
        $stmt->execute([$email, $token, $requester_ip]);
    
        // Kullanıcıya e-posta gönderin ve sıfırlama bağlantısını içeren bir link gönderin
        $reset_link = "https://domainim.net/reset_password.php?token=" . $token;
    
        // PHPMailer kullanarak e-posta gönderme
        use PHPMailer\PHPMailer\PHPMailer;
        use PHPMailer\PHPMailer\SMTP;
        use PHPMailer\PHPMailer\Exception;
    
        $mail = new PHPMailer;
        $mail->isSMTP();
        $mail->Host = ''; // E-posta sunucu adresi
        $mail->SMTPAuth = true;
        $mail->Username = ''; // E-posta adresiniz
        $mail->Password = ''; // E-posta şifreniz
        $mail->SMTPSecure = 'tls';
        $mail->Port = 587;
    
        $mail->setFrom('', 'Your Name');
        $mail->addAddress($email); // Kullanıcının e-posta adresine gönder
    
        $mail->isHTML(true);
        $mail->Subject = "Şifre Sıfırlama İsteği";
        $mail->Body = "Şifrenizi sıfırlamak için aşağıdaki bağlantıya tıklayın:<br>$reset_link";
    
        if (!$mail->send()) {
            $_SESSION['error_message'] = 'E-posta gönderme hatası: ' . $mail->ErrorInfo;
        } else {
            $_SESSION['success_message'] = "Şifre sıfırlama bağlantısı e-posta adresinize gönderildi. Lütfen kontrol edin.";
        }
    
        // Kullanıcıya başarılı bir mesaj gösterin ve yönlendirme yapın
        header("Location: forgot_password.php");
        exit();
    }
    ?>
    
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-6">
                <h2 class="mt-5 mb-4">Şifremi Unuttum</h2>
                <form action="forgot_password.php" method="post">
                    <div class="mb-3">
                        <label for="email" class="form-label">E-posta Adresi</label>
                        <input type="email" class="form-control" id="email" name="email" required>
                    </div>
                    <button type="submit" name="forgot_password" class="btn btn-primary">Şifremi Sıfırla</button>
                </form>
            </div>
        </div>
    </div>
    
    <?php
    include('config/footer.php');
    ?>
    internetten baktığım kadarıyla php mailer kullanmaya çalıştım.


        // PHPMailer kullanarak e-posta gönderme
        use PHPMailer\PHPMailer\PHPMailer;
        use PHPMailer\PHPMailer\SMTP;
        use PHPMailer\PHPMailer\Exception;
    bu kısmi silince sayfa açılıyor. Bu kişim varken 500 hatası alıyorum. Ne yapmalıyım?


    https://github.com/PHPMailer/PHPMail...ive/master.zip
    phpmailer ı buradan indirdim ve config dosyasının içine unzip ettim
  • 04-11-2023, 20:30:03
    #2
    Anydesk Pm Alabilir miyim ?
  • 04-11-2023, 21:08:44
    #3
    o kısmı kaldırmalısın önemli degil zaten include et yeterli php sürümün ile alakalı
  • 04-11-2023, 21:29:38
    #4
    roxxom adlı üyeden alıntı: mesajı görüntüle
    Anydesk Pm Alabilir miyim ?

    hocam sorunu çözdü. çok teşekkür ederim.