posttan gelen veriyi bu kodlar ile kayıt yapıyorum ama aynı tc tekrar kayıt olmasın istiyorum ne eklemem gerekli
<?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 {
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>';
}
}
}
}
?>