• 15-04-2022, 21:44:31
    #1
    Merhaba Elimde Php Login Sistemi Var Her şey Güzel Çalışıyor Kayıt ve Giriş
    Fakat Mesela Ahmet İsminde Kayıt Oldum Tekrardan Ahmet İsminde Kayıt Olabiliyorum Bunu Nasıl Engellerim Mysql den mi Yoksa Php Dosyalarımdan mı aydınlatabilecek var mı acaba
  • Kabul Edilen Cevap
    •     try {
               $db = new PDO("mysql:host=localhost;dbname=test", "root", "123456");
          } catch ( PDOException $e ){
               print $e->getMessage();
          }
      
          $isim = $_POST['gelenisim'];
          $sql = "SELECT COUNT(isim) AS num FROM uyeler WHERE isim = :isim";
          $isimsorgu = $db->prepare($sql);
          $isimsorgu->bindValue(':isim', $isim);
          $isimsorgu->execute();
          $sorgula = $isimsorgu->fetch(PDO::FETCH_ASSOC);
          if($sorgula['num'] > 0){
              $isimvarmi = "Var";
          }else
          {
          echo "Yok";    
          }
  • 15-04-2022, 21:47:38
    #2
    Kayıt esnasında veritabanının isim sutnunu kontrol ettirecekseniz eger aynı isim varsa kayıt işlemi gerçekleşmeyecek ve hata verecek.
  • 15-04-2022, 21:48:23
    #3
    Bunun için nasıl bir kod yazabilirim onu bilmiyorum loginde normalde hep hazır sistemler kullanıyordum
  • 15-04-2022, 21:48:42
    #4
    En basit olarak database üzerinden benzersiz olmasını istediğiniz alanı UNİQUE olarak açarsanız 2. kayda izin vermez.
  • 15-04-2022, 21:49:59
    #5
    else if ile dbde o isim varsa kayıt yaptırma seklinde yapabilirsin
  • 15-04-2022, 21:57:50
    #6
    yigiters adlı üyeden alıntı: mesajı görüntüle
    En basit olarak database üzerinden benzersiz olmasını istediğiniz alanı UNİQUE olarak açarsanız 2. kayda izin vermez.
    Bunu Uyguladım Hocam Bu Sefer Uyarı Vermiyor

    "Belirttiğiniz kullanıcı adı sistemde kayıtlı." Bunu vermesi gerekiyor.
  • 15-04-2022, 22:06:40
    #7
    Uyarıyı da veriyor güzelce fakat kayıt sayfasına da gidiyor
  • 15-04-2022, 22:10:01
    #8
    Basit bir örnek

    $senduser = formdan gelen kullanıcı adı
    $dbuser = veritabanı kullanıcı adı

    if($senduser!=$dbuser)
    {veri tabanına kayıt işlemi kodları}
    else
    {
    echo "Belirttiğiniz kullanıcı adı sistemde kayıtlı.";
    }

    Tabi bunu while döngüsü içinde yapmanız lazım ki veritabanında kayıtlı kullanıcı adlarının hepsi denetlensin.
  • 15-04-2022, 22:10:35
    #9
    Bu cevap, konu sahibi tarafından kabul edilebilir bir cevap olarak işaretlendi.
        try {
             $db = new PDO("mysql:host=localhost;dbname=test", "root", "123456");
        } catch ( PDOException $e ){
             print $e->getMessage();
        }
    
        $isim = $_POST['gelenisim'];
        $sql = "SELECT COUNT(isim) AS num FROM uyeler WHERE isim = :isim";
        $isimsorgu = $db->prepare($sql);
        $isimsorgu->bindValue(':isim', $isim);
        $isimsorgu->execute();
        $sorgula = $isimsorgu->fetch(PDO::FETCH_ASSOC);
        if($sorgula['num'] > 0){
            $isimvarmi = "Var";
        }else
        {
        echo "Yok";    
        }