Codeigniter 3 ile TC Kimlik Kontrolü

JBM Yazılım Geliştirme

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;
            }
        }

    }

0 Yorum

İlk yorumu sen ekle!