v2.5.2
Giriş yap

PDO Aynı Kayıt Engelleme

wisex
308 defa görüntülendi

Aynı kullanıcı adıyla kayıt yapmayı engellemek istiyorum. Kodlarım aşağıda nasıl bir yol izlemem gerekiyor. Teşekkür ederim şimdiden.

    <script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
           <?php 
if ($_POST) { 
    $ad = $_POST['ad'];
    $whatsapp = $_POST['whatsapp'];
    $uzmanlik = $_POST['uzmanlik'];
    $ozgecmis = $_POST['ozgecmis'];
     
    $hata = "";

    if (isset($_FILES['foto'])) {

        if ($_FILES['foto']['error'] != 0) {
            $hata .= 'Dosya yüklenirken hata gerçekleşti lütfen daha sonra tekrar deneyiniz.';
        } else {

            $dosya_adi = strtolower($_FILES['foto']['name']);
            if (file_exists('images/' . $dosya_adi)) {
                $hata .= " $dosya_adi diye bir dosya var";
            } else {
                $boyut = $_FILES['foto']['size'];
                if ($boyut > (1000 * 1000 * 5)) {
                    $hata .= ' Dosya boyutu 2MB den büyük olamaz.';
                } else {
                    $dosya_tipi = $_FILES['foto']['type'];
                    $dosya_uzanti = explode('.', $dosya_adi);
                    $dosya_uzanti = $dosya_uzanti[count($dosya_uzanti) - 1];

                    if (!in_array($dosya_tipi, ['image/png', 'image/jpeg', 'image/gif']) || !in_array($dosya_uzanti, ['png', 'jpg', 'gif'])) {
                        //if (($dosya_tipi != 'image/png' || $dosya_uzanti != 'png' )&&( $dosya_tipi != 'image/jpeg' || $dosya_uzanti != 'jpg')) {
                        $hata .= ' Hata, dosya türü JPEG veya PNG olmalı.';
                    } else {
                        $foto = $_FILES['foto']['tmp_name'];
                        copy($foto, 'uyeler/' . $dosya_adi);


                        //Eklencek veriler diziye ekleniyor
                        $satir = [
                            'foto' => $dosya_adi, 
                            'ad' => $ad, 
                            'whatsapp' => $whatsapp,
                            'uzmanlik' => $uzmanlik, 
                            'ozgecmis' => $ozgecmis, 
                            
                        ];

                        // Veri ekleme sorgumuzu yazıyoruz.
                        $sql = "INSERT INTO uyeler SET foto=:foto, ad=:ad,whatsapp=:whatsapp,uzmanlik=:uzmanlik,ozgecmis=:ozgecmis";
                        $durumx = $baglanti->prepare($sql)->execute($satir);

                        if ($durumx) {
                            echo '<script>Swal.fire("Başarılı","Kayıt Başarılı","success").then((value)=>{ window.location.href = "index.php"});

</script>';
                        }


                    }
                }
            }
        }
    }
    if($hata!=""){
        echo '<script>Swal.fire("Hata","'.$hata.'","error");</script>';
    }
}
?>
Cevap yaz
Cevaplar (3)
abdullahx
726 gün önce

if ($_POST) {
    $_POST = array_map('trim', $_POST);
    extract($_POST);
    $hata = "";

    if (isset($_FILES['foto'])) {
        if ($_FILES['foto']['error'] != 0) {
            $hata .= 'Dosya yüklenirken hata gerçekleşti lütfen daha sonra tekrar deneyiniz.';
        } else {

            $dosya_adi = strtolower($_FILES['foto']['name']);
            if (file_exists('images/' . $dosya_adi)) {
                $hata .= " $dosya_adi diye bir dosya var";
            } else {
                $boyut = $_FILES['foto']['size'];
                if ($boyut > (1000 * 1000 * 5)) {
                    $hata .= ' Dosya boyutu 2MB den büyük olamaz.';
                } else {
                    $dosya_tipi = $_FILES['foto']['type'];
                    $dosya_uzanti = explode('.', $dosya_adi);
                    $dosya_uzanti = $dosya_uzanti[count($dosya_uzanti) - 1];

                    if (!in_array($dosya_tipi, ['image/png', 'image/jpeg', 'image/gif']) || !in_array($dosya_uzanti, ['png', 'jpg', 'gif'])) {
                        //if (($dosya_tipi != 'image/png' || $dosya_uzanti != 'png' )&&( $dosya_tipi != 'image/jpeg' || $dosya_uzanti != 'jpg')) {
                        $hata .= ' Hata, dosya türü JPEG veya PNG olmalı.';
                    } else {
                        $check = $baglanti->prepare("SELECT ad FROM uyeler WHERE ad = ?");
                        $check->execute([$ad]);
                        if ($check->rowCount()) {
                            $hata = 'Bu ad kullanılıyor!';
                        }
                        else {
                            $foto = $_FILES['foto']['tmp_name'];
                            copy($foto, 'uyeler/' . $dosya_adi);
                            
                            //Eklencek veriler diziye ekleniyor
                            $satir = [
                                'foto' => $dosya_adi,
                                'ad' => $ad,
                                'whatsapp' => $whatsapp,
                                'uzmanlik' => $uzmanlik,
                                'ozgecmis' => $ozgecmis,

                            ];
                            // Veri ekleme sorgumuzu yazıyoruz.
                            $durumx = $baglanti->prepare("INSERT INTO uyeler SET foto=:foto, ad=:ad,whatsapp=:whatsapp,uzmanlik=:uzmanlik,ozgecmis=:ozgecmis")->execute($satir);

                            if ($durumx) 
                                echo '<script>Swal.fire("Başarılı","Kayıt Başarılı","success").then((value)=>{ window.location.href = "index.php"});</script>';
                        }
                    }
                }
            }
        }
    }
    if($hata!=""){
        echo '<script>Swal.fire("Hata","'.$hata.'","error");</script>';
    }
}
abdullahx
726 gün önce

query ile yaparsan SQL Injection a açık olursun, kullanıcıdan gelen veriye güvenme hiçbir zaman, prepare ile yap.

wisex
726 gün önce

Bende şöyle çözdüm hocam teşekkür ederim

$kontrol = $baglanti->query("SELECT * FROM uyeler WHERE ad='{$_POST['ad']}'");

       if($kontrol->rowCount() != "0"){
      $hatax = "Kullanıcı adı sisteme kayıtlı!";
    echo '<script>Swal.fire("Hata","'.$hatax.'","error").then((value)=>{ window.location.href = "index.php"});</script>';
    exit();
    die();
}