Aynı veriyi kaydetmeyi engellemek

Bu konuyu okuyanlar

vibeheaven01

Öğrenci
Katılım
7 Şubat 2021
Mesajlar
1
Reaksiyon puanı
1
Puanları
3
Yaş
25
PHP:
<?php

$db = new PDO("mysql:host=localhost;dbname=webmodel;charset=utf8", "root", "");


$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];

if (!$username || !$email || !$password) {
    die("Lütfen boş alan bırakmayınız.");
}

$ekle = $db->prepare("INSERT INTO member SET username = ?, email = ?, password = ?");
$ekle->execute([$username, $email, $password]);

if ($ekle) {
  echo "Kayıt başarılı, giriş sayfasına yönlendiriliyorsunuz.";
  header("Refresh: 3; url=../system/login.php");
}else {
    echo "Beklenmeyen SQL hatası.";
}
Buraya kadar PDO bağlantılı bir kayıt sistemi yaptım, ama aynı veri olduğunda nasıl hata verdireceğimi kafamda planlayamadım bilgim yetersiz kaldı. Yardımcı olur musunuz? Eğer bir de mantığını yazma şansınız varsa yukarıdaki koda işleyerek anlatırsanız ben ve bu konuyu inceleyenler için daha yararlı olur. Şimdiden teşekkür ederim. :)
 

Samet UCA

Müdavim
Katılım
3 Ağustos 2012
Mesajlar
3,277
Reaksiyon puanı
2,912
Puanları
113
İlk olarak kullanıcının girdiği kullanıcı adı ve şifre bilgini bir değişkene aktar. Daha sonra bu değişkende ki verileri, ilgili tabloya sorgu olarak gönder.
select * from tabloAdi where Kadi=text1.text sifre=text2.text gibi
bu sorguyu bir değişkene aktardığında
T degiskenAdi = select * from tabloAdi where Kadi=text1.text sifre=text2.text
burada T gelen datayı döner. if ile bunun içinde değer varmı yok mu bakabilirsin.
 

mali2012

Asistan
Katılım
10 Eylül 2012
Mesajlar
157
Reaksiyon puanı
9
Puanları
18
Veritabanında bütün alanlarda "unique" özelliği ekleyebilirsin. Yani "benzersiz" anlamında bir özellik. "Kullanıcı adı" kısmı için burayı seçersen aynı isimde yani "kullanıcı adı" olarak kimse kayıt olamaz.
 

Ekli dosyalar

  • benzersiz.jpg
    benzersiz.jpg
    45.5 KB · Görüntüleme: 111
Üst