• 26-11-2022, 18:42:53
    #1
    Merhabalar;
    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) { // Sayfada post olup olmadığını kontrol ediyoruz.
        $ad = $_POST['ad'];
        $whatsapp = $_POST['whatsapp'];
        $uzmanlik = $_POST['uzmanlik'];
        $ozgecmis = $_POST['ozgecmis'];
        
        $hata = "";
        
        // Veri alanlarının boş olmadığını kontrol ettiriyoruz. başka kontrollerde yapabilirsiniz.
        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>';
        }
    }
    ?>
  • 26-11-2022, 18:51:01
    #2
    Aşağıda ki kodda birkaç değişiklik yaparak kullanabilirsiniz.
    if ($kullanici_adi_gelen == $kullanici_adi_kontrol) {
    #kayit işlemi vb...
    } else {
    header("location: kayit.php?status=kullanicimevcut
    ");
    }
    NOT
    Kayıt sayfasına status kontrol yapmanız gerekiyor uyarı gözükmesi için
  • 26-11-2022, 18:54:43
    #3
    wisex adlı üyeden alıntı: mesajı görüntüle
    Merhabalar;
    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) { // Sayfada post olup olmadığını kontrol ediyoruz.
        $ad = $_POST['ad'];
        $whatsapp = $_POST['whatsapp'];
        $uzmanlik = $_POST['uzmanlik'];
        $ozgecmis = $_POST['ozgecmis'];
        
        $hata = "";
        
        // Veri alanlarının boş olmadığını kontrol ettiriyoruz. başka kontrollerde yapabilirsiniz.
        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>';
        }
    }
    ?>
    blacklistten rowcount ile kontrol ettirebilirsiniz.
  • 26-11-2022, 19:21:25
    #4
    Mustafa1379 adlı üyeden alıntı: mesajı görüntüle
    Aşağıda ki kodda birkaç değişiklik yaparak kullanabilirsiniz.
    if ($kullanici_adi_gelen == $kullanici_adi_kontrol) {
    #kayit işlemi vb...
    } else {
    header("location: kayit.php?status=kullanicimevcut
    ");
    }
    NOT
    Kayıt sayfasına status kontrol yapmanız gerekiyor uyarı gözükmesi için
    OneGui adlı üyeden alıntı: mesajı görüntüle
    blacklistten rowcount ile kontrol ettirebilirsiniz.

    $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();
    }
    Teşekkür ederim ilginiz için rowCountla çözdüm
  • 27-11-2022, 03:36:52
    #5
    Üyeliği durduruldu
    başka bir çözüm olarakta veritabanı üzerinden hangi tablo için aynı kayıtları engellemek istiyorsanız unique aktif edersenizde çözülür iyi çalışmalar