öncelikle resimlere bir göz atalım nasıl çalışıyormuş sistem
ilk önce veritabanında bir tablo oluşturuyorum

tabloyu açıklayacak olursak kişinin adı soyadı tc numarası dogum yılı ve dogrulama adında sütunlarım mevcut dogrulama sütunum şu işe yarayacak burada eğer doğrulama bir kere yapılmışsa bir daha sordurmayacagım bunu yapılmamışsa kullanıcıya bu benim yazdıgım sistemde firma ekleme işlemi yaptırmıyor ama siz bunu blog yazısı eklemesinde veya sitenin her hangi bir yerinde kullanıcıya doğrulama olmadan işlem yaptırmak istemiyorsanız kullanabilirsiniz.

burada inputlarımı oluşturdum bu inputlar haricinde ben burada kullanıcı kayıt olduktan sonra tc dogrulaması yaptıracagım için 2 adet gizli input oluşturuyorum

eğer girdiği bilgiler yani adi soyadı tc numarası ile tutmuyorsa veya dogum yılı ve tc numarası tutmuyorsa bu hatayı verdiriyorum ekrana

eğerki sistemde daha önceden bu tc kimlik numarası üzerinde bir üyelik var ise kayıtlı oldugunu söylüyorum ve kabul etmiyorum bunu şu yüzden yapıyorum birden cok üyelikte birden fazla tc kimlik kullanılamasın üyelikler tek kişi üzerine olsun

şimdi kodlara geçelim hızlıca
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="system.php" method="POST">
<input type="text" name="adi" placeholder="Adınız"><br><br>
<input type="text" name="soyadi" placeholder="Soyadınız"><br><br>
<input type="password" name="tc_no" placeholder="Tc Kimlik Numaranız"><br><br>
<input type="password" name="dogum_tarihi" placeholder="Dogum Yılınız"><br><br>
<input type="hidden" name="id" value="1"> <!-- kullanıcının bize gelen id değeri -->
<input type="hidden" name="dogrulama" value="1"> <!-- Burada doğrulamayı onaylıyorum -->
<input type="submit" name="update" value="Doğrula">
</form>
</body>
</html><?php
try {
$db = new PDO("mysql:host=localhost;dbname=rehber","root","");
$db->query("SET CHARSET UTF8");
} catch (Exception $error) {
die("Bağlantı Başarısız".$error->getMessage());
}
if (isset($_POST['update'])) {
$tc_no = htmlspecialchars($_POST['tc_no']);
$varmi = $db->prepare("SELECT tc_no FROM tc WHERE tc_no=:tc_no");
$varmi->execute(array(':tc_no'=>$tc_no));
if ($varmi->rowCount()) {
echo "Bu Tc Kimlik Sistemde Kayıtlı";
}else{
$row = new SoapClient("https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL");
try {
$sonuc = $row->TCKimlikNoDogrula([
'TCKimlikNo' => $_POST['tc_no'],
'Ad' => $_POST['adi'],
'Soyad' => $_POST['soyadi'],
'DogumYili' => $_POST['dogum_tarihi']
]);
if ($sonuc->TCKimlikNoDogrulaResult) {
$kaydet=$db->prepare("UPDATE tc SET
adi=:adi,
soyadi=:soyadi,
tc_no=:tc_no,
dogrulama=:dogrulama,
dogum_tarihi=:dogum_tarihi
WHERE id={$_POST['id']}");
$insert=$kaydet->execute(array(
'adi' => htmlspecialchars($_POST['adi']),
'soyadi' => htmlspecialchars($_POST['soyadi']),
'tc_no' => htmlspecialchars($_POST['tc_no']),
'dogrulama' => htmlspecialchars($_POST['dogrulama']),
'dogum_tarihi' => htmlspecialchars($_POST['dogum_tarihi'])
));
$id=$_POST['id'];
if ($insert) {
echo "Başarı ile Doğrulandı";
} else {
echo "Bir Hata Var";
}
} else {
echo "Tc Kimlik Numaranız Yanlış veya Bilgiler İle Uyuşmamaktadır.";
}
} catch (Exception $e) {
echo $e->faultstring;
}
}
}
?>