Neler yeni

YARDIM Şifremi unuttum ?

S

Silinen Üye

KY Misafir
Web panelde şifremi unuttum yapınca gerekli mail gönderildi yazısı geliyor ama mail gönderme işlemi başarısız oluyor konu hakkında bilgi sahibi varsa yardımcı olabilir mi?
 

Aakinci

Co-Admin
Premium Üye
KY Saygın Üye
Coder
Yardımsever
KY Kod Editörü
KAYIT
5 Tem 2021
Mesajlar
772
Çözümler
119
Tepki puanı
448
Yaş
33
Web işinden pek anlamam ama şöyle yapabilirsiniz hocam, şifremi unuttum diyip gizli soruyu doğru yazanlara random bir sifre verip mesaj kutucugunda gosterirsiniz. Sonra kişi isterse bu şifre ile giriş yapip değiştirebilir.
 
S

Silinen Üye

KY Misafir
Web işinden pek anlamam ama şöyle yapabilirsiniz hocam, şifremi unuttum diyip gizli soruyu doğru yazanlara random bir sifre verip mesaj kutucugunda gosterirsiniz. Sonra kişi isterse bu şifre ile giriş yapip değiştirebilir.
çok aklıma yatmadı mail olarak atması daha mantıklı olacaktır benim açımdan değerli yorum ve düşünceniz için teşekkür ederim
 

Cupcap

KY Uzman Üye
KAYIT
19 May 2022
Mesajlar
298
Tepki puanı
69
Yanlış anlamadıysam web üzerinden mail yönlendirme yapacaksınız bunun için SMTP dediğimiz bir ayar olması gerekli mail gönderme başarısız ise muhtemelen bu ayardan kaynaklıdır
 

yaek

Kurucu Admin
KAYIT
22 Ara 2020
Mesajlar
582
Çözümler
1
Tepki puanı
10,183
Web
ko-yardim.com
Yanlış anlamadıysam web üzerinden mail yönlendirme yapacaksınız bunun için SMTP dediğimiz bir ayar olması gerekli mail gönderme başarısız ise muhtemelen bu ayardan kaynaklıdır
Arkadaşın da dediği gibi SMTP ayarlarına bakmanızda yarar var ücretsiz olarak gmail SMTP ayarlarına bakabilirsiniz. Eğer ücretli bir mail sunucu kullanmak isterseniz GoDaddy kurumsal mail sunucularına bakabilirsiniz aylık çok cüzi bir miktarda benim de kullandığım kurumsal mail işinizi görebilir.
 

Aakinci

Co-Admin
Premium Üye
KY Saygın Üye
Coder
Yardımsever
KY Kod Editörü
KAYIT
5 Tem 2021
Mesajlar
772
Çözümler
119
Tepki puanı
448
Yaş
33
Pek anlamadığım için soruyorum, mail atacak ta neyi mail olarak aticak bu paneller, panel sisteminde şifre sıfırlama bağlantısı olusturabilecek bir sistem var mı ki?
 

slaugaxar

KY Üye
KAYIT
9 Şub 2024
Mesajlar
57
Tepki puanı
4
sessionda tutulan bilgilere göre email ile gönderilen bir unique id değer ile kullanıcının şifresini değiştirmesi sağlanabilir
 

slaugaxar

KY Üye
KAYIT
9 Şub 2024
Mesajlar
57
Tepki puanı
4
send_password_to_email.php
PHP:
<?php
// Veritabanı bağlantısı
$servername = "localhost";
$username = "username";
$password = "password";
$database = "dbname";

$conn = new mysqli($servername, $username, $password, $database);

// Hata kontrolü
if ($conn->connect_error) {
    die("Veritabanına bağlanılamadı: " . $conn->connect_error);
}

// Kullanıcı doğrulama
$email = $_POST['email'];
$sql = "SELECT * FROM users WHERE email='$email'";
$result = $conn->query($sql);

if ($result->num_rows == 1) {
    // Kullanıcı mevcut, şifre sıfırlama kodu oluşturma
    $reset_token = bin2hex(random_bytes(32)); // Rastgele bir dize oluşturuluyor

    // Veritabanında sıfırlama kodunu güncelleme
    $update_sql = "UPDATE users SET reset_token='$reset_token' WHERE email='$email'";
    if ($conn->query($update_sql) === TRUE) {
        // E-posta gönderme
        $to = $email;
        $subject = "Şifre Sıfırlama";
        $message = "Şifrenizi sıfırlamak için aşağıdaki bağlantıya tıklayın: \n\n";
        $message .= "http://XXX.com/reset_password.php?token=$reset_token";
        $headers = "From: [email protected]" . "\r\n" .
                   "Reply-To: [email protected]" . "\r\n" .
                   "X-Mailer: PHP/" . phpversion();

        mail($to, $subject, $message, $headers);
        echo "Şifre sıfırlama bağlantısı e-posta ile gönderildi.";
    } else {
        echo "Error updating record: " . $conn->error;
    }
} else {
    echo "Kullanıcı bulunamadı.";
}

$conn->close();
?>

Bu örnek, bir HTML formu aracılığıyla kullanıcının e-posta adresini alır, ardından bu e-posta adresine bir sıfırlama bağlantısı gönderir.

reset_password.php

PHP:
<?php
// Veritabanı bağlantısı
$servername = "localhost";
$username = "username";
$password = "password";
$database = "dbname";

$conn = new mysqli($servername, $username, $password, $database);

// Hata kontrolü
if ($conn->connect_error) {
    die("Veritabanına bağlanılamadı: " . $conn->connect_error);
}

// Şifre sıfırlama kodunu al
$reset_token = $_GET['token'];

// Form gönderildiğinde
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $new_password = $_POST['new_password'];
    $confirm_password = $_POST['confirm_password'];

    // Şifrelerin eşleşip eşleşmediğini kontrol et
    if ($new_password === $confirm_password) {
        // Şifreyi güncelleme
        $hashed_password = password_hash($new_password, PASSWORD_DEFAULT);
        $update_sql = "UPDATE users SET password='$hashed_password', reset_token=NULL WHERE reset_token='$reset_token'";
        
        if ($conn->query($update_sql) === TRUE) {
            echo "Şifre başarıyla güncellendi.";
        } else {
            echo "Error updating record: " . $conn->error;
        }
    } else {
        echo "Şifreler eşleşmiyor.";
    }
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Şifre Sıfırlama</title>
</head>
<body>
    <h2>Yeni Şifrenizi Girin</h2>
    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]) . '?token=' . $reset_token; ?>">
        <div>
            <label for="new_password">Yeni Şifre:</label>
            <input type="password" id="new_password" name="new_password" required>
        </div>
        <div>
            <label for="confirm_password">Şifre Onayı:</label>
            <input type="password" id="confirm_password" name="confirm_password" required>
        </div>
        <button type="submit">Şifreyi Değiştir</button>
    </form>
</body>
</html>

<?php
$conn->close();
?>

Bu dosya, kullanıcının yeni bir şifre girmesini ve bu şifreyi onaylamasını sağlayacak bir HTML formu içerir. Kullanıcı yeni şifresini girdikten sonra, form gönderildiğinde, girilen şifrelerin eşleşip eşleşmediği kontrol edilir. Eğer şifreler eşleşiyorsa, kullanıcının şifresi güncellenir ve reset_token alanı NULL olarak ayarlanır, böylece aynı sıfırlama kodu bir kez kullanıldıktan sonra tekrar kullanılamaz.
 

swatxx

KY Saygın Üye
Coder
Yardımsever
KAYIT
21 Mar 2024
Mesajlar
651
Çözümler
10
Tepki puanı
293
Yaş
34
Web
www.tdbaguard.com
Bu olayı aslında oyun giriş ekranı geldiğinde, şifremi unuttum bölümü yapıp gönderteceksin.
Mesela; telefon no olucak kullanıcı telefon no yu girdiği zaman misal true değer dönerse otomatik sana 6 haneli şifre verecek şifre gelince gelen şifreyi gireceksin yine true dönerse aynı bölüm üzerinden direk yeni şifreni belirteceksiniz daha güzel olurdu üşeniyor insanlar mail vs vs ^^
 
S

Silinen Üye

KY Misafir
Arkadaşın da dediği gibi SMTP ayarlarına bakmanızda yarar var ücretsiz olarak gmail SMTP ayarlarına bakabilirsiniz. Eğer ücretli bir mail sunucu kullanmak isterseniz GoDaddy kurumsal mail sunucularına bakabilirsiniz aylık çok cüzi bir miktarda benim de kullandığım kurumsal mail işinizi görebilir.
konu tam olarak bu yorumları yeni gördüm dün baktım smtp mail adresleri olaylarına yakın zamanda sonuca ulaşacağım
 
Reklam
Reklam
Üst Alt