lostyazilim
tr.link

php web sitemde mysql veritabanında T.C. kimlik no kontrolü yaparak mükerrer kayıt engellemek

5 Mesajlar 895 Okunma
lstbozum
tr.link

sedatuysal52 sedatuysal52 WM Aracı Kullanıcı
  • Üyelik 06.01.2024
  • Yaş/Cinsiyet 43 / E
  • Meslek memur
  • Konum Niğde
  • Ad Soyad S** U**
  • Mesajlar 38
  • Beğeniler 1 / 2
  • Ticaret 0, (%0)

T.C. kimlik ve adısoyadı textboxının boş olup olmadığını kontrol edip, kayıt formu ile veritabanına kayıt yapıyorum. Ancak aynı T.C. kimlik numaralı kişinin tekrar kayıt olmasını da engellemek istiyorum. Yardımcı olursanız sevinirim. Mevcut çalışan kod sayfa aşağıdaki gibidir.

<html>

<head>

<meta charset="utf-8">

<title>ÇKS Kayıt Sayfası</title>

</head>

 

<body>

<?php

//mysql veritabanına bağlantı yapılır.

$baglan = new MySQLi("localhost","root","password","cks");   

if(!$baglan){

 die('Bağlantı Hatası:' . mysqli());

}

 

//formdan gelen veriler değişkene aktarılır.

$tcno = $_POST['tcno'];

$adisoyadi = $_POST['adisoyadi'];

$babaadi = $_POST['babaadi'];

$dogumyili = $_POST['dogumyili'];

$ckstarihi = date('d.m.Y');

$mahalle = $_POST['mahalle'];

$aciklama =$_POST['aciklama'];

$kayittarihsaat=date('d.m.Y H:i');

 

//textbox boş dolu kontrolü

if ($tcno == "" || $adisoyadi == "")

{

echo "T.C. No veya Adı Soyadı Alanını Boş Bırakmayınız...";

}else{

//veritabanındaki sütunlara aktarılır.

$ekle= "insert into cks2025 (TCNO,ADISOYADI,BABAADI,DOGUMYILI,CKSTARIHI,MAHALLE,ACIKLAMA,KAYITTARIHSAAT,MACADRESI)  VALUES ('".$tcno."','".$adisoyadi."','".$babaadi."','".$dogumyili."','".$ckstarihi."','".$mahalle."','".$aciklama."','".$kayittarihsaat."','".$MAC."')";

if ($baglan->query($ekle) === TRUE) 

{

    echo "ÇKS Dosyası Veritabanına eklendi";

else 

{

   echo "Hata: " . $ekle. "<br>" . $baglan->error;

}

}

header("refresh:1;ckskayitformu.php");

?>

</body>

</html>

 

 

wmaraci
reklam

aeaziz aeaziz Selam! Kullanıcı
  • Üyelik 31.12.2019
  • Yaş/Cinsiyet 31 / E
  • Meslek Web Developer
  • Konum İstanbul Avrupa
  • Ad Soyad A** A**
  • Mesajlar 58
  • Beğeniler 13 / 12
  • Ticaret 3, (%100)

veritabanında ilgili alanı unique olarak ayarla ve gerekirse validasyon kur

 

 

sedatuysal52 sedatuysal52 WM Aracı Kullanıcı
  • Üyelik 06.01.2024
  • Yaş/Cinsiyet 43 / E
  • Meslek memur
  • Konum Niğde
  • Ad Soyad S** U**
  • Mesajlar 38
  • Beğeniler 1 / 2
  • Ticaret 0, (%0)

Teşekkürler, MySQL de tcno sütunu unique yapıp mükerrer çift kayıt engelliyor, ancak veritabanı uyarı hatası veriyor. Daha önce "T.C. no kayıtlı" gibi uyarı nasıl verdirebilirim.

 

 

LabsData LabsData   Kullanıcı
  • Üyelik 19.02.2024
  • Yaş/Cinsiyet 36 / E
  • Meslek BİLGİ İŞLEM
  • Konum KKTC
  • Ad Soyad B** K**
  • Mesajlar 6
  • Beğeniler 2 / 1
  • Ticaret 0, (%0)

tcno daha önce varmı kontrol edecek bir şart ekledim bu şekilde denermisiniz?

 

<?php
$baglan = new MySQLi("localhost","root","password","cks");   
if(!$baglan){
    die('Bağlantı Hatası:' . mysqli());
}
 
$tcno = $_POST['tcno'];
$adisoyadi = $_POST['adisoyadi'];
$babaadi = $_POST['babaadi'];
$dogumyili = $_POST['dogumyili'];
$ckstarihi = date('d.m.Y');
$mahalle = $_POST['mahalle'];
$aciklama = $_POST['aciklama'];
$kayittarihsaat = date('d.m.Y H:i');

if ($tcno == "" || $adisoyadi == "") {
    echo "T.C. No veya Adı Soyadı Alanını Boş Bırakmayınız...";
} else {
    // TC Kimlik numarasının veritabanında var olup olmadığını kontrol et
    $kontrol_sorgusu = "SELECT * FROM cks2025 WHERE TCNO = '$tcno'";
    $kontrol_sonuc = $baglan->query($kontrol_sorgusu);
    if ($kontrol_sonuc->num_rows > 0) {
        echo "Bu TC Kimlik Numarası zaten kayıtlı!";
    } else {
        $ekle = "INSERT INTO cks2025 (TCNO,ADISOYADI,BABAADI,DOGUMYILI,CKSTARIHI,MAHALLE,ACIKLAMA,KAYITTARIHSAAT,MACADRESI)  
                 VALUES ('$tcno','$adisoyadi','$babaadi','$dogumyili','$ckstarihi','$mahalle','$aciklama','$kayittarihsaat','$MAC')";
 
        if ($baglan->query($ekle) === TRUE) {
            echo "ÇKS Dosyası Veritabanına eklendi";
        } else {
            echo "Hata: " . $ekle . "<br>" . $baglan->error;
        }
    }
}

header("refresh:1;ckskayitformu.php");
?>
sedatuysal52

kişi bu mesajı beğendi.

wmaraci
wmaraci

sedatuysal52 sedatuysal52 WM Aracı Kullanıcı
  • Üyelik 06.01.2024
  • Yaş/Cinsiyet 43 / E
  • Meslek memur
  • Konum Niğde
  • Ad Soyad S** U**
  • Mesajlar 38
  • Beğeniler 1 / 2
  • Ticaret 0, (%0)

Teşekkürler hocam, eklediğiniz tc kontrol kodu çalıştı.

 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al