5 yıl önce
Aşağıdaki kod yalnız TC Kimlik numarasının uygun olup olmadığını kontrol etmektedir. E-Devlet API üzerinden gerçek olup olmadığını da kontrol edebilirsiniz.
Aşağıdaki fonksiyonu Controller içerisine yazdıktan sonra, validation kütüphanesine callback olarak geçebilirsiniz.
$this->form_validation->set_rules('tc_no', 'TC Kimlik', 'callback_tc_kimlik_kontrol');
Yazarak Codeigniter 3'ün Validation sınıfını kullanabilirsiniz.
public function tc_kimlik_kontrol($tckimlik)
{
$this->form_validation->set_message('tc_kimlik_kontrol', 'Kimlik numarası doğru formatta girilmelidir.');
$tckimlik = trim($tckimlik);
if ($tckimlik == "") {
return false;
}
$olmaz = array('11111111110', '22222222220', '33333333330', '44444444440', '55555555550', '66666666660', '7777777770', '88888888880', '99999999990');
if ($tckimlik[0] == 0 or !ctype_digit($tckimlik) or strlen($tckimlik) != 11) {
return false;
} else {
$ilkt = 0;
for ($a = 0; $a < 9; $a = $a + 2) {
$ilkt = $ilkt + $tckimlik[$a];
}
$sont = 0;
for ($a = 1; $a < 9; $a = $a + 2) {
$sont = $sont + $tckimlik[$a];
}
$tumt = 0;
for ($a = 0; $a < 10; $a = $a + 1) {
$tumt = $tumt + $tckimlik[$a];
}
if (($ilkt * 7 - $sont) % 10 != $tckimlik[9] or $tumt % 10 != $tckimlik[10]) {
return false;
} else {
foreach ($olmaz as $olurmu) {
if ($tckimlik == $olurmu) {
return false;
}
}
return true;
}
}
}