Çözüldü PHP birden fazla kayıt engelleme

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

kroxlycode

Decapat
Katılım
28 Ekim 2022
Mesajlar
87
Çözümler
3
Daha fazla  
Sistem Özellikleri
Intel Core i7-13620H | RTX 4050 6GB | 16 GB DDR5 4800 MHz | 512 GB NVMe SSD | 180Hz
Cinsiyet
Erkek
Meslek
Yazılım Geliştirme
Merhaba dostlar, Ajax ile kayıt yapıyorum. Yapmak istediğim aynı mail varsa kaydedilmesin yani her mail için bir hesap olmasını istiyorum aynı maille bir daha hesap açılmasın. Kodu yazdım fakat hata falanda vermiyor. Email kontrolü yapmıyor.

PHP:
<?php
include "../vt/init.php";

$ad = $_POST["ad"];
$soyad = $_POST["soyad"];
$d_tarihi = $_POST["d_tarihi"];
$email = $_POST["email"];
$sifre = $_POST["sifre"];

$varolankullanici = DB::queryFirstRow("SELECT id FROM users WHERE email = ?", $email);

if ($varolankullanici) {
 echo "2";
} else {
 $ekle = DB::insert("INSERT INTO users (ad, soyad, d_tarihi, email, sifre) VALUES (?, ?, ?, ?, ?)", [$ad, $soyad, $d_tarihi, $email, $sifre]);

 if ($ekle) {
 echo "1";
 } else {
 echo "0";
 }
}
?>
 
Çözüm

Sorunu çözdüm.
PHP:
$varolankullanici = DB::queryFirstRow("SELECT id FROM users WHERE email =?", $email);
Yerine

PHP:
$varolankullanici = DB::getRow("SELECT id FROM users WHERE email = ?", [$email]);

Olacakmış.
Kodda sıkıntı yok.
 
2 olarak yazdırdığın kısımda servis ile kontrol mü yapıyorsun? Sonuç 2 gelmiyor mu aynı maille kayıt olmaya çalıştığında?

Echo 2 gelirse email kullanılıyor diyor.

JavaScript:
const register = (e) => {
 e.preventDefault();
 const formdata = new FormData(e.target);
 let url = "ajax/register";

 $.ajax({
 type: "POST",
 url: url,
 data: formdata,
 cache: false,
 processData: false,
 contentType: false,
 enctype: "multipart/form-data",
 success: function (data) {
 if (data === "1") {
 const Toast = Swal.mixin({
 toast: true,
 position: "top-end",
 showConfirmButton: false,
 timer: 3000,
 timerProgressBar: true,
 didOpen: (toast) => {
 toast.onmouseenter = Swal.stopTimer;
 toast.onmouseleave = Swal.resumeTimer;
 },
 });
 Toast.fire({
 icon: "success",
 title: "Kayıt Olundu! Yönlendiriliyorsunuz..",
 }).then(() => {
 window.location.href = "login";
 });
 } else if (data === "2") {
 Swal.fire({
 icon: "warning",
 width: "300",
 text: "Bu e-posta zaten kullanılıyor.",
 });
 } else {
 Swal.fire({
 icon: "error",
 width: "350",
 text: "Kayıt eklenemedi. Lütfen tekrar deneyin.",
 });
 }
 },
 error: function () {
 Swal.fire({
 icon: "error",
 title: "Hata",
 text: "Sunucu hatası. Lütfen tekrar deneyin.",
 });
 },
 });
};
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…