 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
bluecrime
Data înscrierii: 21/Noi/2007
Mesaje: 87
Locație: Botosani
|
| Trimis: Mar Sep 30, 2008 7:22 pm Titlul subiectului: Verificare CNP |
|
|
Am terminat acum o mica colectie de functii care verifica daca un cnp este valid si extrage informatii din el.
Download:
http://www.filebox.ro/download.php?key=rgf6m7g199fuabnq
Variabile:
$cnp - Se stabileste CNP-ul care va fi verificat
$valid - Returneaza 1 daca CNP-ul este valid si 0 daca este invalid
$s.e.x - Returneaza s.e.x-ul (Fara puncte - eu le-am folosit pentru ca ma cenzureaza forumul)
$datazi - Returneaza ziua de nastere
$dataluna - Returneaza luna in care sa nascut
$dataan - Returneaza anul nasterii
$oras - Returneaza oras unde isi are domiciliu
$varsta - Returneaza varsta
Voi pune si un DEMO mai tarziu imediat ce revin acasa.
Astept parerile voastre. |
|
| Sus |
|
MihaiC
Data înscrierii: 14/Mai/2006
Mesaje: 1037
Locație: Navodari
|
| Trimis: Mar Sep 30, 2008 8:41 pm Titlul subiectului: |
|
|
lol
neinteresant :P |
|
| Sus |
|
40bets
Data înscrierii: 14/Aug/2008
Mesaje: 42
|
| Trimis: Mar Sep 30, 2008 8:53 pm Titlul subiectului: |
|
|
De ce neinteresant ? ;)) Lasa omul sa creeze , sa castige experienta .
Poate fii folosit pe la inregistrari pe situri , desi nu cred ca multi ar pune asa ceva :P
bluecrime , poate pui si codul aici sa vedem si noi ( eu nu pot accesa acel site ) |
|
| Sus |
|
bluecrime
Data înscrierii: 21/Noi/2007
Mesaje: 87
Locație: Botosani
|
| Trimis: Mar Sep 30, 2008 8:53 pm Titlul subiectului: |
|
|
MihaiC a scris: lol
neinteresant :P
Poate pentru tine:)
Dar nu asteptam comentarii de genul asta...
Asi prefera comentarii la cod... |
|
| Sus |
|
Amenthes
Data înscrierii: 12/Dec/2005
Mesaje: 616
|
| Trimis: Mar Sep 30, 2008 9:08 pm Titlul subiectului: |
|
|
MihaiC a scris: lol
neinteresant :P
Publica si tu o bucata de cod si dupa aia sa faci comentarii din astea. Nici macar in gluma sa nu mai zici ce ai zis. |
|
| Sus |
|
bluecrime
Data înscrierii: 21/Noi/2007
Mesaje: 87
Locație: Botosani
|
| Trimis: Mar Sep 30, 2008 9:08 pm Titlul subiectului: |
|
|
Desigur
Cod: <?php
//Variabile
$cnp = $_GET['cnp']; //VARIABILA PRINCIPALA -> CNP-UL (II PUTETI ACORDA O VALOARE DINAMICA GEN $_GET['cnp'] sau $_POST['cnp'];
$* = *($cnp);
$datazi = dataZI($cnp);
$dataluna = dataLUNA($cnp);
$dataan = dataAN($cnp);
$oras = oras($cnp);
$varsta = varsta($cnp);
$valid = validare($cnp);
//Functii
function *($cod) { //Verifica sexul
$* = substr($cod,0,1);
$listasex = array( "1"=>"Masculin",
"2"=>"Feminin",
"3"=>"Masculin",
"4"=>"Feminin",
"5"=>"Masculin",
"6"=>"Feminin",
"7"=>"Masculin",
"8"=>"Feminin", );
return $listasex[$*];
}
function dataAN($cod) { //Verifica anul nasterii
$dataAN = substr($cod,1,2);
$* = substr($cod,0,1);
$lst = array( "1"=>"19",
"2"=>"19",
"3"=>"18",
"4"=>"18",
"5"=>"20",
"6"=>"20", );
return "$lst[$*]$dataAN";
}
function dataLUNA($cod) { //Verifica luna nasterii
$dataLUNA = substr($cod,-10,2);
$luna = array( "01"=>"Ianuarie",
"02"=>"Februarie",
"03"=>"Martie",
"04"=>"Aprilie",
"05"=>"Mai",
"06"=>"Iunie",
"07"=>"Iulie",
"08"=>"August",
"09"=>"Septembrie",
"10"=>"Octombrie",
"11"=>"Noiembrie",
"12"=>"Decembrie", );
return $luna[$dataLUNA];
}
function dataZI($cod) { //Verifica ziua nasterii
$dataZI = substr($cod,-8,2);
return $dataZI;
}
function oras($cod) { //Verifica orasul unde are domiciliu
$oras = substr($cod,-6,2);
$oraslista = array( "01" => "Alba",
"02" => "Arad",
"03"=>"Arges",
"04"=>"Bacau",
"05"=>"Bihor",
"06"=>"Bistrita-Nasaud",
"07"=>"Botosani",
"08"=>"Braila",
"09"=>"Brasov",
"10"=>"Buzau",
"11"=>"Calarasi",
"12"=>"Caras-Severin",
"13"=>"Cluj",
"14"=>"Constanta",
"15"=>"Covasna",
"16"=>"Dimbovita",
"17"=>"Dolj",
"18"=>"Galati",
"19"=>"Giurgiu",
"20"=>"Gorj",
"21"=>"Harghita",
"22"=>"Hunedoara",
"23"=>"Ialomita",
"24"=>"Iasi",
"25"=>"Maramures",
"26"=>"Mehedinti",
"27"=>"Mures",
"28"=>"Neamt",
"29"=>"Olt",
"30"=>"Prahova",
"31"=>"Salaj",
"32"=>"Satu Mare",
"33"=>"Sibiu",
"34"=>"Suceava",
"35"=>"Teleorman",
"36"=>"Timis",
"37"=>"Tulcea",
"38"=>"Vaslui",
"39"=>"Vilcea",
"40"=>"Vrancea",
"41"=>"Bucuresti S.1",
"42"=>"Bucuresti S.2",
"43"=>"Bucuresti S.3",
"44"=>"Bucuresti S.4",
"45"=>"Bucuresti S.5",
"46"=>"Bucuresti S.6",
"47"=>"Bucuresti-Ilfov", );
return $oraslista[$oras];
}
function validare($cod) { //Verifica daca CNP-ul este corect
$p1 = substr($cod,-13,1)*2;
$p2 = substr($cod,-12,1)*7;
$p3 = substr($cod,-11,1)*9;
$p4 = substr($cod,-10,1)*1;
$p5 = substr($cod,-9,1)*4;
$p6 = substr($cod,-8,1)*6;
$p7 = substr($cod,-7,1)*3;
$p8 = substr($cod,-6,1)*5;
$p9 = substr($cod,-5,1)*8;
$p10 = substr($cod,-4,1)*2;
$p11 = substr($cod,-3,1)*7;
$p12 = substr($cod,-2,1)*9;
$uc = substr($cod,-1,1); //Cifra de Control din CNP
$s = $p1+$p2+$p3+$p4+$p5+$p6+$p7+$p8+$p9+$p10+$p11+$p12;
$int = (int) ($s/11);
$c = $s-(11*$int); //Cifra de Control rezultata in urma calcului
if($c == $uc) {
return 1;
} else {
return 0;
}
}
function varsta($cod) {
$dataAN = dataAN($cod);
$ancurent = date("Y");
$varsta = $ancurent-$dataAN;
return $varsta;
}
if($valid == 1) {
echo 'CNP-ul este VALID<br><br>';
echo "<b>Data Nastere: $datazi / $dataluna / $dataan<br>*: $*<br>Oras: $oras<br>Varsta: $varsta ani";
} else {
echo 'CNP-ul este INVALID';
}
?>
scriptul se acceseaza cam asa: script.php?cnp=COD-CNP |
|
| Sus |
|
MihaiC
Data înscrierii: 14/Mai/2006
Mesaje: 1037
Locație: Navodari
|
| Trimis: Mar Sep 30, 2008 9:36 pm Titlul subiectului: |
|
|
Amenthes a scris:
Publica si tu o bucata de cod si dupa aia sa faci comentarii din astea. Nici macar in gluma sa nu mai zici ce ai zis.
Nu inteleg de ce daca as publica o bucata de cod as putea face comentarii.
In fine, mie chiar mi se pare neinteresant.
Nu de alta, dar nu aveam nici un cod de comentat, doar un link care putea sa-mi aduca o fericire mare (un virus de exemplu:P)
edit si ontopic: vezi ca functia validare() nu-ti merge corect |
|
| Sus |
|
corsar
Data înscrierii: 12/Ian/2008
Mesaje: 40
|
| Trimis: Mar Sep 30, 2008 10:01 pm Titlul subiectului: |
|
|
wow, cuvantul s e x este cenzurat pe un forum de programatori.
exiata vreun cliseu mai tare ca asta?
la obiect: alea nu sunt orase, sunt judete
am invatat chestii noi din algoritmul tau, insa ce te faci cu cei nascuti prin sectorul 7 (cand exista?) |
|
| Sus |
|
fanfm
Data înscrierii: 30/Sep/2008
Mesaje: 3
Locație: Fetesti
|
| Trimis: Mar Sep 30, 2008 10:34 pm Titlul subiectului: Hhhmmm |
|
|
| poti gasii un scrip mult mai bun si care este mai frumos la aspect...contact me la id : fanfmfetesti :D :D :D :D |
|
| Sus |
|
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2607
Locație: Bucuresti
|
| Trimis: Mie Oct 01, 2008 12:02 am Titlul subiectului: |
|
|
| de pe 25-06-2008 am un tutorial la mine despre lucrul cu CNP, dar unii vad ca au dezvoltat ideea si au facut deja clase din asa ceva :lol: |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 653
Locație: Drobeta Turnu Severin
|
| Trimis: Mie Oct 01, 2008 12:37 am Titlul subiectului: |
|
|
Am introdus CNP-ul '0000000000000' si mi-a raspuns:
Cod:
CNP-ul este VALID
Data Nastere: 00 / / 00
*:
Oras:
Varsta: 2008 ani
iar pentru CNP '9011333250007' care are corecte judetul ( Mehedinti nu Maramures) si cifra de control, obtin :
Cod:
CNP-ul este VALID
Data Nastere: 33 / / 01
*:
Oras: Maramures
Varsta: 2007 ani
Am facut acelasi test pe codul din tutorialul lui Birkoff
Pentru CNP = '0000000000000'
Cod:
Prima cifra din CNP - eronata!
Luna este incorecta!
Ziua este incorecta!
Data de nastere specificata este incorecta
Codul judetului este eronat!
Pentru CNP='9011333250007'
Cod:
Prima cifra din CNP - eronata!
Luna este incorecta!
Ziua este incorecta!
Data de nastere specificata este incorecta
Vezi diferenta ?!
Nu vreau sa te descurajez (esti inca elev) felicitari pentru cat ai facut dar ar fi bine sa corectezi.... |
|
| Sus |
|
bluecrime
Data înscrierii: 21/Noi/2007
Mesaje: 87
Locație: Botosani
|
| Trimis: Mie Oct 01, 2008 6:47 am Titlul subiectului: |
|
|
Da acele erori pentru ca mi-a cenzurat si o bucata de cod...
Daca te crezi asa bun programator de ce nu ai corectat acolo unde a cenzurat forumul? |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 653
Locație: Drobeta Turnu Severin
|
| Trimis: Mie Oct 01, 2008 2:16 pm Titlul subiectului: |
|
|
Eu zic ca le-am corectat altfel nu puteam rula codul. Ti-am spus prieteneste, nu trebuie sa te superi, e o critica constructiva.
Imi pare rau ca n-ai culesc laudele pe care le asteptai, eu totusi te-am felicitat pentru cat ai facut.
Scuze pentru offtopic !!! |
|
| Sus |
|
LXS
Data înscrierii: 05/Oct/2008
Mesaje: 38
Locație: Timisoara
|
| Trimis: Sâm Oct 11, 2008 2:29 am Titlul subiectului: |
|
|
Felicitari pentru scriptul tau :)
@MihaiC esti nesimtzit! |
|
| Sus |
|
mihaitha
Data înscrierii: 04/Mai/2007
Mesaje: 1781
Locație: Sibiu
|
| Trimis: Sâm Oct 11, 2008 8:49 am Titlul subiectului: |
|
|
| LXS a scris: @MihaiC esti nesimtzit! Si tu jignesti un alt membru al forum-ului, ceea ce constituie o incalcare a regulilor. Abtine-te, ca s-a mai luat ban din motivul asta. |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|