• 02-10-2009, 17:08:08
    #1
    merhaba arkadaşlar ben bir üyelik sisteminde şifremiunuttum kısmı yapmaya çalişiyorum. from ile email adresini sorgulatip mail adresine aktifle.php?id=785258 gibi bir mesaj gönderiyorum. Aynı zamanda uye tablosundaki uye_unuttum sütununada aynı rasgele şifreyi kaydettiriyorum.
    Sorum şu aktifle.php de id= bundan sonra gelen sayi tüm uye_unuttum sütunu ile karşilaştirilacak eğer aynı ise aynı üyenin uye_sifre sütununa kaydettirilecek.Bu konuda yardım edebilirmisiniz.Şöyle bir sorgu yaptim ama hata veriyor.
    <?php
    // Urlden verileri al.
    
    $id = $_GET['id'];
    
    $query = mysql_query("SELECT * FROM uye where uye_unuttum like '%$id%' order by uye_id desc");
    $number=MYSQL_NUM_ROWS($query);
    if ($number == 0) {echo "Hata Oluştu";}
    else {
      while ($row = mysql_fetch_array($query)) {
    if
    ($id == $row['uye_unuttum'])
    
    {
    $sifre=sha1($id); 
    $sql3 = "update uye SET uye_sifre='$sifre' where uye_unuttum='0'"; 
    $sql2 = mysql_query($sql3); 
    echo "Tebrikler şifreyi güncellemeyi başardınız.";}
    
    } }
    
    ?>
  • 02-10-2009, 20:36:56
    #2
    Aktivasyon key i ile birlikte kullanıcı id numarasını kullanırsanız daha hızlı olur bence. Like kullanmışsın tamamen gereksiz bence.

    aktifle.php?user_id=1&activate_key=5556
    gibi.

    SELECT * FROM users WHERE id = $_GET['user_id']
    Bu şekilde direk kullanıcıya erişip daha sonra keyleri kıyaslayabiliriz. (güvenlik önlemlerini dahil etmedim, direk GET kullandım)

    Devamı da basit, kendiniz yazabilirsiniz.

    if ($row['sifre_unuttum'] != $_GET['key'])
    {
        die('key\'ler uyusmuyor');
    }
    gibi...

    .