JavaScript İle kayıt olurken veritabanında aynı mail olup olmadığını kontrol etme

Catflowers

Decapat
Katılım
22 Ocak 2022
Mesajlar
201
Çözümler
2
Yapmak istediğim şey kullanıcı, siteye üye olurken girmiş olduğu e-posta daha önceden veritabanında kayıtlıysa kayıdı yarıda kesip uyarı vermesi ama bir türlü yapamadım. Yardımcı olursanız çok mutlu olurum.

HTML kodları:
Kod:
    <form class="login100-form validate-form flex-sb flex-w" method="POST" action="mysql/kayiteklev2.php" id="login-form">
                    <span class="login100-form-title p-b-3">
                        Kayıt Ol
                    </span>
                    <div class="p-t-31 p-b-9">
                        <label for="name" class="txt1">
                            İsim
                                                    </label>
                    </div>
                    <div class="wrap-input100 validate-input" data-validate = "İsim alanı gereklidir">
                        <input id="name" class="input100" type="text" name="name" >
                        <span class="focus-input100"></span>
                    </div>

                    <div class="p-t-31 p-b-9">
                        <label for="email" class="txt1">
                            E-posta Adresi
                            <span class="text-danger"></span>                      </label>
                    </div>
                    <div class="wrap-input100 validate-input" data-validate = "E-posta adresi gereklidir">
                        <input id="email" class="input100" type="email" name="email" >
                        <span class="focus-input100"></span>
                    </div>

                    <div class="p-t-13 p-b-9 d-inline-flex">
                        <label for="password" class="txt1">
                            Şifre
                            <span class="text-danger"></span>                          </label>
                    </div>
                    <div class="wrap-input100 validate-input" data-validate = "Şifre alanı gereklidir">
                        <input id="password" class="input100" type="password" name="password" >
                        <span class="focus-input100"></span>
                    </div>

                    <div class="p-t-13 p-b-9 d-inline-flex">
                        <label for="password_confirmation" class="txt1">
                            Şifre
                        </label>
                    </div>
                    <div class="wrap-input100 validate-input" data-validate = "Şifre alanı gereklidir">
                        <input id="password_confirmation" class="input100" type="password" name="password_confirmation" >
                        <span class="focus-input100"></span>
                    </div>
                   

                             <div class="container-login100-form-btn m-t-17">
                        <button type="submit" class="login100-form-btn" id="submit">
                            Kayıt Ol
                        </button>
                    </div>

                    <div class="w-full text-center p-t-55">
                        <span class="txt2">
                            Zaten üye misin?
                        </span>

                        <a href="#" class="txt2 bo1">
                            Hemen giriş yap!
                        </a>
                    </div>
                </form>
                    
<script src="js/kayitekle.js"></script>
<script src="js/kontrol.js"></script>

Eğer kayıt olurken şifre bölümüne ve şifre doğrulamaya farklı girişler yaparsa çözümüm bu şekilde oldu;

Kod:
const messageElement = document.getElementsByClassName("text-danger")[1];
const frm = document.getElementById("login-form");
frm.addEventListener("submit", function (event) {
    if (document.getElementById('password').value != document.getElementById('password_confirmation').value){
        messageElement.innerHTML = "Şifreler eşleşmiyor, şifrenizi aynı giriniz.";
        event.preventDefault();
        return false;
    }
});

Başlıkta sorunu denemeye çalışıyorum ama çalışmıyor;

Kod:
const frm = document.getElementById("login-form");
frm.addEventListener("submit", function (event) {
   
    const mysql = require("mysql");
    const messageElement = document.getElementsByClassName("text-danger")[0];
    const mail = document.getElementById("email").value;
   
    const connection = mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: '',
        database: 'indirimyedb'
      });
   
      connection.connect(function(err) {
        if (err) {
          console.error('Hata: ');
          return;
        }
   
        console.log('MySQL veritabanına başarıyla bağlandı!');
      });
   
      const checkQuery = "SELECT COUNT(*) as count FROM uyehesap WHERE email = '${mail}'";
      connection.query(checkQuery, (err, result) => {
        if (err) {
          console.error('Sorgu hatası:', err);
         
        } else {
          const count = result[0].count;
          const exists = count > 0;
         
        }
    });
   

    if (exists > 0){
     
        messageElement.innerHTML = "Mail kayıtlı, farklı mail kullanın";

        event.preventDefault();
        return false;
    }
});
 
Merhaba Öncelikle kayıt işlemi post edilmeden önce bir kontrol yapılabilir, ilk başta kullanıcının kayıt olmak istediği email bilgisini bir query yollayarak tablo üzerinde kontrol edelim ondan sonra eğer bize bir kullanıcı dönüyorsa kullanıcının kayıt işlemini sonlandıralım
kodlarında en altta bulunan if'e sadece exists yazıp deneyebilirsiniz
 

Geri
Yukarı