Yardımcı olayım öncelikle TC Kimlik numarası hakkında okuduğum bir makalede bu geçiyordu
İlk 9 basamak arasında kurulan bir algoritma bize 10. basamağı,
ilk 10 basamak arasında kurulan algoritma ise bize 11. basamağı verir.
1. Aşama * Her hanesi rakamsal değer içerir.
2. Aşama * İlk hane 0 olamaz.
3. Aşama * 11 hanelidir.
4. Aşama * 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartıldığında, elde edilen sonucun 10’a bölümünden kalan, yani Mod10’u bize 10. haneyi verir.
5. Aşama * 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. hanelerin toplamından elde edilen sonucun 10’a bölümünden kalan, yani Mod 10’u bize 11. haneyi verir.
Buna göre işlem yaptırırsak hem rasgele bir tc kimlik numaraları kayıt olamazlar ve 1-2 rakam hatasının önüne geçeriz
<script>
$(function() {
// 1. Aşama
$("#tckimlik").keyup(function () { // Zaten boş veri kontrolü yaptığım için değer girmek zorunda ve klavyede her tuşa bastığında kontrol ediyorum.
if (this.value.match(/[^0-9]/g)){ // Bilindiği gibi TC Kimlik numaraları RAKAMLARDAN oluşmaktadır bu yüzden rakam harici her değer girdiğinde o değeri geri siliyorum
this.value = this.value.replace(/[^0-9]/g,'');
}
//2. Aşama
var tc = $("#tckimlik").val(); // Tekrar formda TC Kimlik verisini alıyorum
var tck = tc.split(''); //TC Kimlik numarasını ayrıştırıyorum
var deger = parseInt(tck[0]); // İndis değeri 0 olan veriyi yani ilk rakama bakıyorum
if(deger =='0'){ // Algoritmada da söylemiştim TC Kimlik Numarasının ilk rakamı 0 olamaz bu yüzden 0 ı da sildiriyorum
$("#tckimlik").val('');
}
//3. Aşama
var tcU = $("#tckimlik").val().length; // Formda TC Kimlik numarasının uzunluğunu alıyorum
var limit = '11'; // TC Kimlik Numarası 11 hane olacağı için 11 limiti tanımlıyorum
if((limit - tcU) <= 0){ // Limitden TC Kimlik Numara Değerimizi Çıkardım ve değer 0 a eşit veya küçükse işlem devam ediyor
$("#tckimlik").val(tc.slice(0,limit)); // TC Kimlik verimin içerisinde bulun değeri sadece ilk 11 hanesini kabul ediyorum ve geri kalanı siliyorum.
window.event.keyCode = 0; return;
}
});
$(".kayitol").click(function(){ // Yukarıda TC Kimlik Numarası ile ilk 3 aşamayı geçtik 4. ve 5. aşamayı ise bu kısımda kontrol etmeye karar verdim elbette yukarıda da devam edebilirdim
/* if($("#ad").val()=='' || $("#sifre").val()=='' || $("#sifretekrar").val()=='' || $("#isimsoyisim").val()=='' || $("#adres").val()=='' || $("#tckimlik").val()=='' || $("#guvenlikkod").val()=='' ){
$("#uyari").fadeIn();
$("#uyari").html("Lütfen, boş alanları doldurun.");
}else{ */
var TCKimlik = $("#tckimlik").val();
var TCKimlikNo = TCKimlik.split('');
var i, veri1 = 0, veri2 = 0, veri3 = parseInt(TCKimlikNo[0]);
for(i=0; i < 10; i++) {
veri1 = veri1 + parseInt(TCKimlikNo[i]);
}
for(i=1; i < 9; i = i + 2) {
veri2 = veri2 + parseInt(TCKimlikNo[i]);
veri3 = veri3 + parseInt(TCKimlikNo[i+1]);
}
if((veri1 % 10 != TCKimlikNo[10]) || (veri3 * 7 - veri2) % 10 != TCKimlikNo[9]){
$("#uyari").fadeIn();
$("#uyari").html("Lütfen, geçerli bir TC Kimlik Numarası girin.");
}else{
$("#uyari").fadeOut();
var veri = $("form").serialize();
$.ajax({
type: "POST",
url : "kayitol.php",
data : veri,
success : function(cevap){
$("#uyari").html(cevap);
}
});
}
});
});
</script>
PHP Kısmınıda halledersin diye düşünüyorum yinede ufak bir aradan sonra onuda yazıp paylaşırım elbette elimden geldiğince ben jQuery ile kontrolleri gerçekleştirdim ama yine de bir de php ile gözden geçirmek gerekir diye düşünüyorum eksik bir kısım varsa yaz lütfen