Aceasta este o previzualizare a unei teme de pe site-ul Hitskin.com
Instaleaza o tema • Inapoi la fisa temei
[Tutorial PHP]Verificare CNP (cod numeric personal)
Pagina 1 din 1 • Distribuiţi
[Tutorial PHP]Verificare CNP (cod numeric personal)
Nume Tutorial:Verificare CNP (cod numeric personal)
Descriere:Verificare CNP (cod numeric personal)
Download:Nu necesita
Autor:Anonim
Propria parere:Util.
Tutorialul:
Codul de mai jos afişează un formular în care se introduce Codul Numeric Personal şi se verifică dacă este corect sau nu. În cazul în care nu este corect se vor afişa mesajele de eroare şi se va cere din nou CNP-ul.
Descriere:Verificare CNP (cod numeric personal)
Download:Nu necesita
Autor:Anonim
Propria parere:Util.
Tutorialul:
Codul de mai jos afişează un formular în care se introduce Codul Numeric Personal şi se verifică dacă este corect sau nu. În cazul în care nu este corect se vor afişa mesajele de eroare şi se va cere din nou CNP-ul.
- Cod:
- <?php
/* Nume fisier: validare_cnp.php */
/* Creat de danielplesu [AT] yahoo [DOT] com */
/* Copyright Daniel Plesu 17-06-2008 */
/* Corectat de Birkoff - www.tutoriale far php ro */
// functia care afiseaza formularul
function afisare_form_cnp($stare = 1)
{
//daca valoarea variabilei $stare este 1 atunci se afiseaza campul cnp - gol
if ($stare == 1)
$cnp = '';
// daca valoarea variabilei $stare este diferita de 1 atunci se preiau
// mai intai datele trimise anterior prin POST din formular
// si se afiseaza formularul cu valorile primite.
else
$cnp = $_POST['cnp'];
// se genereaza variabila cu tabelul care contine formularul
$form = '<div align="center">
<form method="post" action="'.$_SERVER['PHP_SELF'].'">
<input name="cnp" type="text" value="'.$cnp.'" size="20">
<input type="submit" name="Submit" value="Verifica CNP!" size="25"><br>
</form>
</div>';
return $form;
}
// functia care preia datele din formular si returneaza datele primite
function preluare_date($de_unde = 1)
{
switch ($de_unde)
{
default:
case '1': // din post
$cnp['cnp primit'] = trim($_POST['cnp']);
break;
case '2': // din get
$cnp['cnp primit'] = trim($_GET['cnp']);
break;
}
return $cnp['cnp primit'];
}
// functia care valideaza datele primite si returneaza erorile daca sunt
function validare_cnp($cnp_primit)
{
$cnp['cnp primit'] = $cnp_primit;
// prima cifra din cnp reprezinta sexul si nu poate fi decat 1,2,5,6 (pentru cetatenii romani)
// 1, 2 pentru cei nascuti intre anii 1900 si 1999
// 5, 6 pentru cei nsacuti dupa anul 2000
$cnp['sex'] = $cnp['cnp primit'];
// cifrele 2 si 3 reprezinta anul nasterii
$cnp['an'] = $cnp['cnp primit'].$cnp['cnp primit'];
// cifrele 4 si 5 reprezinta luna (nu poate fi decat intre 1 si 12)
$cnp['luna'] = $cnp['cnp primit'].$cnp['cnp primit'];
// cifrele 6 si 7 reprezinta ziua (nu poate fi decat intre 1 si 31)
$cnp['zi'] = $cnp['cnp primit'].$cnp['cnp primit'];
// cifrele 8 si 9 reprezinta codul judetului (nu poate fi decat intre 1 si 52)
$cnp['judet'] = $cnp['cnp primit'].$cnp['cnp primit'];
// cifrele 10,11,12 reprezinta un nr. poate fi intre 001 si 999.
// Numerele din acest interval se impart pe judete,
// birourilor de evidenta a populatiei, astfel inct un anumit numar din acel
// interval sa fie alocat unei singure persoane intr-o anumita zi.
// cifra 13 reprezinta cifra de control aflata in relatie cu
// toate celelate 12 cifre ale CNP-ului.
// fiecare cifra din CNP este inmultita cu cifra de pe aceeasi pozitie
// din numarul 279146358279; rezultatele sunt insumate,
// iar rezultatul final este impartit cu rest la 11. Daca restul este 10,
// atunci cifra de control este 1, altfel cifra de control este egala cu restul.
$cnp['suma de control'] = $cnp['cnp primit'] * 2 + $cnp['cnp primit'] * 7 +
$cnp['cnp primit'] * 9 + $cnp['cnp primit'] * 1 + $cnp['cnp primit'] * 4 +
$cnp['cnp primit'] * 6 + $cnp['cnp primit'] * 3 + $cnp['cnp primit'] * 5 +
$cnp['cnp primit'] * 8 + $cnp['cnp primit'] * 2 + $cnp['cnp primit'] * 7 +
$cnp['cnp primit'] * 9;
$cnp['rest'] = fmod($cnp['suma de control'], 11);
// setarea variabilei de erori, in cazul in care nu exista erori
// sa returneze un array gol (altfel ar da eroare)
$erori = array();
if (empty($cnp['cnp primit']))
$erori[] = 'Campul CNP este gol!<br>';
else
{
if (! is_numeric($cnp['cnp primit']))
$erori[] = 'CNP-ul este format doar din cifre!<br>';
if (strlen($cnp['cnp primit']) != 13)
{
$cifre = strlen($cnp['cnp primit']);
$erori[] = 'CNP-ul trebuie sa aiba 13 numere, cel introdus are doar '.$cifre.' !<br>';
}
if($cnp['sex'] != 1 && $cnp['sex'] != 2 && $cnp['sex'] != 5 && $cnp['sex'] != 6)
$erori[] = 'Prima cifra din CNP - eronata!<br>';
if($cnp['luna'] > 12 || $cnp['luna'] == 0 )
$erori[] = 'Luna este incorecta!<br>';
if($cnp['zi'] > 31 || $cnp['zi'] == 0)
$erori[] = 'Ziua este incorecta!<br>';
if ( is_numeric($cnp['luna']) && is_numeric($cnp['zi']) && is_numeric($cnp['an']) )
{
if (! checkdate($cnp['luna'],$cnp['zi'],$cnp['an']))
$erori[] = 'Data de nastere specificata este incorecta<br>';
}
if($cnp['judet'] > 52 || $cnp['judet'] == 0)
$erori[] = 'Codul judetului este eronat!<br>';
if (($cnp['rest'] < 10 && $cnp['rest'] != $cnp['cnp primit'])
|| ($cnp['rest'] >= 10 && $cnp['cnp primit'] != 1))
$erori[] = 'Cifra de control este gresita! (CNP-ul nu este valid)<br>';
}
return $erori;
}
// de aici incepe codul propriuzis
// daca utilizatorul este pentru prima data pe pagina i se afiseaza campul cnp - gol
if (!isset($_POST['cnp']))
echo afisare_form_cnp(1);
// daca s-a trimis ceva prin post, se preiau datele si se verifica
else
{
// preluare date din post
$cnp = preluare_date(1);
// verificare de erori (se primeste un array cu mesajele de erori sau un array gol daca nu sunt erori)
$erori = validare_cnp($cnp);
// daca sunt erori
if (count($erori)) // daca array-ul are macar 1 mesaj de eroare
{
echo implode(' ', $erori); // se transforma arayul in sir si se afiseaza
echo afisare_form_cnp(0); // se afiseaza formularul cu datele deja introduse
}
else // daca nu sunt erori
echo 'Felicitari! CNP-ul e valid!<br>'.$cnp;
}
?>
Joker- Medalia TopicurilorInsigna pentru crearea a 150 de posturi !Medalia prietenieiFelicitari ! Această insignă se obține când ai un prieten !Medalia grupurilorFelicitari ! Dacă ai această insignă înseamnă că faci parte din cel puțin 4 grupuri.Primul topic creatFelicitari ! Ai primit aceasă insignă pentru primul tau topic făcut la noi pe forum !Medalie de mulțumireFelicitari ! Această insignă se obține când oferi o mulțumire !Medalie de apreciereFelicitari ! Această insignă se obține când ai 10 de mesaje apreciate !Medalie participare subiecteInsigna pentru participarea la 125 de subiecte !Medalie de puncteDisponibilă la 15000 de puncte!Medalia vechimii [ani]Ai 365 de zile de când ești alături de noi !
Pet :
Mesaje : 180
Puncte : 42372
Multumiri primite: : 33
Data de înscriere : 25/10/2022
Subiecte similare
ť [Tutorial] Cum sa pui un GUI pe non-steam
ť Tutorial Spray!
ť Tutorial BB Codes
ť [Tutorial] Cum fac un script CS
ť [Tutorial] Introducere GameCP
ť Tutorial Spray!
ť Tutorial BB Codes
ť [Tutorial] Cum fac un script CS
ť [Tutorial] Introducere GameCP
Pagina 1 din 1
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum