6 ani mai tarziu: am scos un pachet de Composer care te ajuta sa validezi un CNP usor si cu standarde moderne. Click aici pentru mai multe informatii.
Am lucrat ieri la un asa zis „proiect” care l-am facut mai mult de atata plictiseala.
Proiectul se numeste Validare CNP si poate fi accesat la url-ul http://www.pacurar.net/cnp .
Ce face?
In primul rand, tu introduci un Cod Numeric Personal iar backend-ul se uita daca este valid, apoi se uita la prima cifra si isi da seama daca esti barbat sau femeie, iar in ultimul rand extrage data nasterii.
Lucrand la acest proiect am invatat si eu cateva chestii cum ar fi: algoritmul de validare a cnp-ului.
Edit:Pentru Ștefan o sa mai explic validarea.
Deci, dupa ce ia data nasterii… ba nu… intai de toate trece printr-o serie de validare… adica: verifica daca are doar 13 cifre(nimic mai mult, nimic mai putin) apoi trece prin validarea propiuzisa propriu-zisa: Se foloseste cheia de testare „279146358279”. Primele douasprezece cifre se inmultesc pe rand de la stanga spre dreapta cu cifra corespunzatoare din cheia de testare. Cele douasprezece produse obtinute se aduna si suma obtinuta se imparte la 11.
- Daca restul impartirii la 11 este mai mic ca 10, atunci acesta va reprezenta cifra de control.
- Daca restul impartirii este 10 atunci cifra de control este 1.
Pentru un CNP valid cifra de control va trebui sa coincida cu cifra de pe pozitia treisprezece din CNP-ul initial.
Cifra de control este ultima cifra. Sper ca intelegi cate ceva din ce am zis :)).
Explica mai pe larg validarea. Adica, bun … am grija sa fie 1 sau 2 prima cifra, apoi introduc o data de nastere corecta. Cum verifici restul? 😀