Validare cod numeric personal

Această pagină:

  • Îți va explica structura codului numeric personal.
  • Va explica două funcții PHP care validează un Cod Numeric Personal dat.
  • Îți va prezenta codul sursă al unei pagini PHP pentru test.

Structura Codului Numeri Personal

S AA LL ZZ JJ NNN C

Iată ce înseamnă fiecare grup de litere:

  • S - sex.
  • AA - an.
  • LL - luna.
  • ZZ - zi.
  • JJ - județ.
  • NNN - numar registru.
  • C - cifra de control.

Funcții PHP de validare a unui CNP

Funcția test_control_number() va verifica dacă ultima cifră a Codului Numeric Personal este validă.

function test_control_number($cnp) {
    if((int) strlen($cnp) !== (int) 13) return FALSE;

    /**
     * definim variabilele de control
     */
    $test_key = 279146358279;
    $cnp_tst = substr($cnp, 0, 12);
    $cnp_ctrl = (int) substr($cnp, 12, 1);

    $response = '';

    /**
     * inmultim (de la stanga spre dreapta) fiecare cifra a variabilei $test_key cu corespondentul ei in variabila $cnp_test
     */
    for($x = 0; $x < 12; $x++) {
        $response = $response + ((int) substr($test_key, $x, 1) * (int) substr($cnp_tst, $x, 1));
    }

    /**
     * rotunjim restul impartirii la 11 si comparam cu ultima cifra a codului, variabila $cnp_ctrl
     *
     * daca acestea sunt egale, atunci CNP-ul este valid
     */
    return ((int) $response%11 === $cnp_ctrl) ? TRUE : FALSE;
}

Funcția test_cnp() va verifica validitatea Codului Numeric Personal.

function test_cnp($cnp) {
    /**
     * CNP-ul trebuie sa aiba minim / maxim 13 cifre
     */
    if((int) strlen($cnp) !== (int) 13) return FALSE;

    /**
     * un an are maxim 12 luni, testam segmentul din CNP care reprezinta anul
     */
    if((int) substr($cnp, 3, 2) > 12) return FALSE;

    /**
     * o luna are maxim 131 zile, testam segmentul din CNP care reprezinta luna
     */
    if((int) substr($cnp, 5, 2) > 31) return FALSE;

    /**
     * testam in functie de numarul de control 279146358279
     */
    return test_control_number($cnp);
}

Uite codul sursă complet

Descarcă cnp.php, deschide-l cu Notepad++ pentru a studia codul sursă și folosește XAMPP pentru a testa cum funcționează direct pe calculatorul tău. Succes!

RECOMANDARE! Folosește și tu Kaspersky Internet Security antivirusul pe care eu îl folosesc cu succes de mai bine de 7 ani.

Avram Cosmin

Contactează-mă, află dacă pot lucra pentru tine!

my email address

Iată tehnologiile web pe care le folosesc

  • PHP
  • MySQL
  • jQuery (librărie JavaScript)
  • CodeIgniter (librărie PHP)
  • xHTML
  • CSS
  • JavaScript

Preludiu - Arta Seducției

Trebuie să ai această carte! Este modul cel mai simplu de a afla de ce și cum trebuie să construiești un caracter puternic cu ajutorul căruia să obții ceea ce-ți propui, să ai succes în viață și să ajungi Dragostea Adevărată. - Succes! -

Preludiu - Arta Seducției * Disponibilă doar pe www.Trim.ro Cumpără 36.90RON
 

Citește ultimul articol

Internet mobil pe calculatorul tău

Alege Cosmote, Vodafone sau Orange; principalii operatori de telefonie mobila care pun la dispoziție servicii de internet mobil pe calculatorul tău.

Vezi ultima înregistrare video

(Video) CodeIgniter - Instalare și configurare (ep1)

Acesta este primul din cele 10 episoade care îți vor arăta cum să folosești CodeIgniter, librăria PHP cu care poți realiza aplicații web inteligente.

Află noutățile! Trim.ro Un secret YouTube

«Utilizatorii sunt în mare grabă, scanează după ce îi interesează, preferă să nu citească prea mult.»

creare website, standarde și competitivitate