YazilimciBiri adlı üyeden alıntı: mesajı görüntüle
En son else içerisinde (burası olması şart değil ama kayıt kısmında yapmalısınız), üstteki giriş kısmında kontrol ettiğiniz gibi bir kontrol yapmanız lazım. Yani SELECT ile tabloyu seçip WHERE ile TC sütununa parametreyi gönderip kontrol ettirmelisiniz. Sonrasında, varsa bu TC kayıtlı diye uyarı verebilirsiniz.
teşekkürler hocam şöyle birşekilde yaptım
<?php
session_start();
require_once 'db.php'; // PDO nesnesi burada olmalı: $pdo

function turkce_duzelt($veri){
    $bul = ['ç', 'ğ', 'ı', 'i', 'ö', 'ş', 'ü'];
    $deg = ['Ç', 'Ğ', 'I', 'İ', 'Ö', 'Ş', 'Ü'];
    return str_replace($bul, $deg, $veri);
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    // GİRİŞ İŞLEMİ
    if (!empty($_POST['tc_kimlik']) && !empty($_POST['sifre']) && empty($_POST['ad'])) {
        $stmt = $pdo->prepare("SELECT id, sifre FROM musteri WHERE tc_kimlik = ? AND durum = 1 LIMIT 1");
        $stmt->execute([$_POST['tc_kimlik']]);
        $kullanici = $stmt->fetch(PDO::FETCH_ASSOC);

        if ($kullanici && password_verify($_POST['sifre'], $kullanici['sifre'])) {
            $_SESSION['kullanici']['giris'] = 1;
            $_SESSION['kullanici']['id'] = $kullanici['id'];
            echo "<script>alert('Giriş Yapıldı.'); location.href='index.php';</script>";
        } else {
            echo "<script>alert('TC veya Şifre hatalı.');</script>";
        }

    // KAYIT İŞLEMİ
    } elseif (!empty($_POST['ad'])) {
        $ad         = strtoupper(turkce_duzelt(trim($_POST['ad'])));
        $soyad      = strtoupper(turkce_duzelt(trim($_POST['soyad'])));
        $telefon    = trim($_POST['telefon']);
        $tc_kimlik  = trim($_POST['tc_kimlik']);
        $dogum_yili = trim($_POST['dogum_yili']);
        $email      = trim($_POST['email']);
        $parola     = trim($_POST['sifre']);

        if (!$ad || strlen($ad) <= 2 || !$soyad || strlen($soyad) <= 2 || !$dogum_yili || !$tc_kimlik) {
            echo "<script>alert('Boş Alan Bırakmayın!');</script>";
        } elseif (strlen($tc_kimlik) != 11) {
            echo "<script>alert('T.C. Numaranız 11 karakter olmalıdır!');</script>";
        } elseif (strlen($dogum_yili) != 4 || !is_numeric($dogum_yili)) {
            echo "<script>alert('Geçersiz doğum yılı!');</script>";
        } else {
            // Aynı TC var mı kontrolü
            $stmt = $pdo->prepare("SELECT COUNT(*) FROM musteri WHERE tc_kimlik = ?");
            $stmt->execute([$tc_kimlik]);
            $tc_var_mi = $stmt->fetchColumn();

            if ($tc_var_mi > 0) {
                echo "<script>swal('HATA!', 'Bu T.C. Kimlik Numarası ile daha önce kayıt yapılmış!', 'error');</script>";
            } else {
                try {
                    $client = new SoapClient('https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL');
                    $params = [
                        'TCKimlikNo' => $tc_kimlik,
                        'Ad'         => $ad,
                        'Soyad'      => $soyad,
                        'DogumYili'  => (int)$dogum_yili
                    ];

                    $response = $client->TCKimlikNoDogrula($params);

                    if ($response->TCKimlikNoDogrulaResult) {
                        $hashed_password = password_hash($parola, PASSWORD_DEFAULT);
                        $stmt = $pdo->prepare("INSERT INTO musteri (ad, soyad, tc_kimlik, telefon, email, sifre) VALUES (?, ?, ?, ?, ?, ?)");
                        $stmt->execute([$ad, $soyad, $tc_kimlik, $telefon, $email, $hashed_password]);

                        echo '<script>swal("BAŞARILI!", "Bilgiler doğru! Üyelik başarılı.", "success");</script>';
                    } else {
                        echo '<script>swal("HATA!", "Girilen bilgiler ile TC uyuşmuyor.", "warning");</script>';
                    }
                } catch (Exception $e) {
                    echo '<script>swal("HATA!", "Geçersiz bilgiler!", "error");</script>';
                }
            }
        }
    }
}
?>