<?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