470 lines
10 KiB
PHP
470 lines
10 KiB
PHP
<?php
|
|
$nome = $_POST["nome"];
|
|
$cognome = $_POST["cognome"];
|
|
$dataNascita = $_POST["datanascita"];
|
|
$luogoNascita = strtoupper($_POST["luogonascita"]);
|
|
$provincia = strtoupper($_POST["provincia"]);
|
|
$sex = $_POST["sesso"];
|
|
$codFiscale = strtoupper($_POST["codFiscale"]);
|
|
|
|
$vocali = ['A', 'E', 'I', 'O', 'U'];
|
|
|
|
//Calcolo nome
|
|
$nvocali = [];
|
|
$nconsonanti = [];
|
|
for ($x=0; $x<strlen($nome); $x++){
|
|
if(in_array(strtoupper($nome)[$x], $vocali) == false){
|
|
array_push($nconsonanti, strtoupper($nome)[$x]);
|
|
}
|
|
else{
|
|
array_push($nvocali, strtoupper($nome)[$x]);
|
|
}
|
|
}
|
|
$codNome = [];
|
|
if(count($nconsonanti)>3){
|
|
$codNome = [$nconsonanti[0], $nconsonanti[2], $nconsonanti[3]];
|
|
}
|
|
else{
|
|
for($i=0; ($i<count($nconsonanti) && count($codNome)<3); $i++){
|
|
array_push($codNome, $nconsonanti[$i]);
|
|
}
|
|
for($y=0; ($y<count($nvocali) && count($codNome)<3); $y++){
|
|
array_push($codNome, $nvocali[$y]);
|
|
}
|
|
while(count($codNome)<3){
|
|
array_push($codNome, 'X');
|
|
}
|
|
}
|
|
|
|
|
|
//Calcolo cognome
|
|
$nvocali = [];
|
|
$nconsonanti = [];
|
|
for ($x=0; $x<strlen($cognome); $x++){
|
|
if(in_array(strtoupper($cognome)[$x], $vocali)){
|
|
array_push($nvocali, strtoupper($cognome)[$x]);
|
|
}
|
|
else{
|
|
array_push($nconsonanti, strtoupper($cognome)[$x]);
|
|
}
|
|
}
|
|
$codCognome = [];
|
|
for($i=0; ($i<count($nconsonanti) && count($codCognome)<3); $i++){
|
|
array_push($codCognome, $nconsonanti[$i]);
|
|
}
|
|
for($y=0; ($y<count($nvocali) && count($codCognome)<3); $y++){
|
|
array_push($codCognome, $nvocali[$y]);
|
|
}
|
|
while(count($codCognome)<3){
|
|
array_push($codCognome, 'X');
|
|
}
|
|
|
|
//Calcolo data nascita
|
|
$vettData = explode('-', $dataNascita);
|
|
$codAnno = $vettData[0][2] . $vettData[0][3];
|
|
switch($vettData[1]){
|
|
case "01":
|
|
$codMese = 'A';
|
|
break;
|
|
case "02":
|
|
$codMese = 'B';
|
|
break;
|
|
case "03":
|
|
$codMese = 'C';
|
|
break;
|
|
case "04":
|
|
$codMese = 'D';
|
|
break;
|
|
case "05":
|
|
$codMese = 'E';
|
|
break;
|
|
case "06":
|
|
$codMese = "H";
|
|
break;
|
|
case "07":
|
|
$codMese = 'L';
|
|
break;
|
|
case "08":
|
|
$codMese = 'M';
|
|
break;
|
|
case "09":
|
|
$codMese = 'P';
|
|
break;
|
|
case "10":
|
|
$codMese = 'R';
|
|
break;
|
|
case "11":
|
|
$codMese = 'S';
|
|
break;
|
|
case "12":
|
|
$codMese = 'T';
|
|
break;
|
|
default:
|
|
$codMese = "NIGGA";
|
|
break;
|
|
}
|
|
switch($sex){
|
|
case 'F':
|
|
$codGiorno = intval($vettData[2]) + 40;
|
|
break;
|
|
case 'M':
|
|
$codGiorno = intval($vettData[2]);
|
|
break;
|
|
default:
|
|
echo "<script>alert(\"Valore sesso non valido\");</script>";
|
|
break;
|
|
}
|
|
|
|
//Codice comune
|
|
switch($luogoNascita){
|
|
case "BIELLA":
|
|
$codComune = "A859";
|
|
break;
|
|
case "COSSATO":
|
|
$codComune = "D094";
|
|
break;
|
|
case "TORINO":
|
|
$codComune = "L219";
|
|
break;
|
|
default:
|
|
echo "<script>alert(\"Comune non valido o non presente in base dati\");</script>";
|
|
break;
|
|
}
|
|
|
|
$codRaw = implode($codCognome) . implode($codNome) . $codAnno . $codMese . $codGiorno . $codComune;
|
|
//Calcolo carattere di controllo
|
|
//Caratteri pari
|
|
$sumPari=0;
|
|
for($i=1;$i<=strlen($codRaw);$i+=2){
|
|
switch($codRaw[$i]){
|
|
case '0':
|
|
$sumPari+=0;
|
|
break;
|
|
case '1':
|
|
$sumPari+=1;
|
|
break;
|
|
case '2':
|
|
$sumPari+=2;
|
|
break;
|
|
case '3':
|
|
$sumPari+=3;
|
|
break;
|
|
case '4':
|
|
$sumPari+=4;
|
|
break;
|
|
case '5':
|
|
$sumPari+=5;
|
|
break;
|
|
case '6':
|
|
$sumPari+=6;
|
|
break;
|
|
case '7':
|
|
$sumPari+=7;
|
|
break;
|
|
case '8':
|
|
$sumPari+=8;
|
|
break;
|
|
case '9':
|
|
$sumPari+=9;
|
|
break;
|
|
case 'A':
|
|
$sumPari+=0;
|
|
break;
|
|
case 'B':
|
|
$sumPari+=1;
|
|
break;
|
|
case 'C':
|
|
$sumPari+=2;
|
|
break;
|
|
case 'D':
|
|
$sumPari+=3;
|
|
break;
|
|
case 'E':
|
|
$sumPari+=4;
|
|
break;
|
|
case 'F':
|
|
$sumPari+=5;
|
|
break;
|
|
case 'G':
|
|
$sumPari+=6;
|
|
break;
|
|
case 'H':
|
|
$sumPari+=7;
|
|
break;
|
|
case 'I':
|
|
$sumPari+=8;
|
|
break;
|
|
case 'J';
|
|
$sumPari+=9;
|
|
break;
|
|
case 'K':
|
|
$sumPari+=10;
|
|
break;
|
|
case 'L':
|
|
$sumPari+=11;
|
|
break;
|
|
case 'M':
|
|
$sumPari+=12;
|
|
break;
|
|
case 'N':
|
|
$sumPari+=13;
|
|
break;
|
|
case 'O':
|
|
$sumPari+=14;
|
|
break;
|
|
case 'P':
|
|
$sumPari+=15;
|
|
break;
|
|
case 'Q':
|
|
$sumPari+=16;
|
|
break;
|
|
case 'R':
|
|
$sumPari+=17;
|
|
break;
|
|
case 'S':
|
|
$sumPari+=18;
|
|
break;
|
|
case 'T':
|
|
$sumPari+=19;
|
|
break;
|
|
case 'U':
|
|
$sumPari+=20;
|
|
break;
|
|
case 'V':
|
|
$sumPari+=21;
|
|
break;
|
|
case 'W':
|
|
$sumPari+=22;
|
|
break;
|
|
case 'X':
|
|
$sumPari+=23;
|
|
break;
|
|
case 'Y':
|
|
$sumPari+=24;
|
|
break;
|
|
case 'Z':
|
|
$sumPari+=25;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
$sumDispari=0;
|
|
//Caratteri dispari
|
|
for($i=0;$i<=strlen($codRaw);$i+=2){
|
|
switch($codRaw[$i]){
|
|
case '0':
|
|
$sumDispari+=1;
|
|
break;
|
|
case '1':
|
|
$sumDispari+=0;
|
|
break;
|
|
case '2':
|
|
$sumDispari+=5;
|
|
break;
|
|
case '3':
|
|
$sumDispari+=7;
|
|
break;
|
|
case '4':
|
|
$sumDispari+=9;
|
|
break;
|
|
case '5':
|
|
$sumDispari+=13;
|
|
break;
|
|
case '6':
|
|
$sumDispari+=15;
|
|
break;
|
|
case '7':
|
|
$sumDispari+=17;
|
|
break;
|
|
case '8':
|
|
$sumDispari+=19;
|
|
break;
|
|
case '9':
|
|
$sumDispari+=21;
|
|
break;
|
|
case 'A':
|
|
$sumDispari+=1;
|
|
break;
|
|
case 'B':
|
|
$sumDispari+=0;
|
|
break;
|
|
case 'C':
|
|
$sumDispari+=5;
|
|
break;
|
|
case 'D':
|
|
$sumDispari+=7;
|
|
break;
|
|
case 'E':
|
|
$sumDispari+=9;
|
|
break;
|
|
case 'F':
|
|
$sumDispari+=13;
|
|
break;
|
|
case 'G':
|
|
$sumDispari+=15;
|
|
break;
|
|
case 'H':
|
|
$sumDispari+=17;
|
|
break;
|
|
case 'I':
|
|
$sumDispari+=19;
|
|
break;
|
|
case 'J';
|
|
$sumDispari+=21;
|
|
break;
|
|
case 'K':
|
|
$sumDispari+=2;
|
|
break;
|
|
case 'L':
|
|
$sumDispari+=4;
|
|
break;
|
|
case 'M':
|
|
$sumDispari+=18;
|
|
break;
|
|
case 'N':
|
|
$sumDispari+=20;
|
|
break;
|
|
case 'O':
|
|
$sumDispari+=11;
|
|
break;
|
|
case 'P':
|
|
$sumDispari+=3;
|
|
break;
|
|
case 'Q':
|
|
$sumDispari+=6;
|
|
break;
|
|
case 'R':
|
|
$sumDispari+=8;
|
|
break;
|
|
case 'S':
|
|
$sumDispari+=12;
|
|
break;
|
|
case 'T':
|
|
$sumDispari+=14;
|
|
break;
|
|
case 'U':
|
|
$sumDispari+=16;
|
|
break;
|
|
case 'V':
|
|
$sumDispari+=10;
|
|
break;
|
|
case 'W':
|
|
$sumDispari+=22;
|
|
break;
|
|
case 'X':
|
|
$sumDispari+=25;
|
|
break;
|
|
case 'Y':
|
|
$sumDispari+=24;
|
|
break;
|
|
case 'Z':
|
|
$sumDispari+=23;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
//Calcolo codice di controllo
|
|
$modControllo = ($sumPari + $sumDispari) % 26;
|
|
|
|
switch($modControllo){
|
|
case 0:
|
|
$codControllo = 'A';
|
|
break;
|
|
case 1:
|
|
$codControllo = 'B';
|
|
break;
|
|
case 2:
|
|
$codControllo = 'C';
|
|
break;
|
|
case 3:
|
|
$codControllo = 'D';
|
|
break;
|
|
case 4:
|
|
$codControllo = 'E';
|
|
break;
|
|
case 5:
|
|
$codControllo = 'F';
|
|
break;
|
|
case 6:
|
|
$codControllo = 'G';
|
|
break;
|
|
case 7:
|
|
$codControllo = 'H';
|
|
break;
|
|
case 8:
|
|
$codControllo = 'I';
|
|
break;
|
|
case 9:
|
|
$codControllo = 'J';
|
|
break;
|
|
case 10:
|
|
$codControllo = 'K';
|
|
break;
|
|
case 11:
|
|
$codControllo = 'L';
|
|
break;
|
|
case 12:
|
|
$codControllo = 'M';
|
|
break;
|
|
case 13:
|
|
$codControllo = 'N';
|
|
break;
|
|
case 14:
|
|
$codControllo = 'O';
|
|
break;
|
|
case 15:
|
|
$codControllo = 'P';
|
|
break;
|
|
case 16:
|
|
$codControllo = 'Q';
|
|
break;
|
|
case 17:
|
|
$codControllo = 'R';
|
|
break;
|
|
case 18:
|
|
$codControllo = 'S';
|
|
break;
|
|
case 19:
|
|
$codControllo = 'T';
|
|
break;
|
|
case 20:
|
|
$codControllo = 'U';
|
|
break;
|
|
case 21:
|
|
$codControllo = 'V';
|
|
break;
|
|
case 22:
|
|
$codControllo = 'W';
|
|
break;
|
|
case 23:
|
|
$codControllo = 'X';
|
|
break;
|
|
case 24:
|
|
$codControllo = 'Y';
|
|
break;
|
|
case 25:
|
|
$codControllo = 'Z';
|
|
break;
|
|
}
|
|
|
|
$codCalcolato = $codRaw . $codControllo;
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html lang="it">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title><?php echo "Conferma di " . $nome . " " . $cognome ?></title>
|
|
</head>
|
|
<body>
|
|
<?php
|
|
echo "<h1> Benvenuto, " . $nome . " "; echo $cognome . "</h1>";
|
|
echo "Il tuo codice fiscale è: " . $codFiscale . "<br>" . "Sei nato il " . $dataNascita . " a " . $luogoNascita . " (" . $provincia . ")<br><br>";
|
|
echo "Il codice calcolato dai tuoi dati è: " . $codCalcolato . "<br><br>";
|
|
echo "Richiesta effettuata " . date("d M Y H:i:s") . " (" . date_default_timezone_get() . ")";
|
|
?>
|
|
</body>
|
|
</html>
|