ciao ragazzi, sto cercando di far controllare l'inserimento del codice fiscale su un sito che sto realizzando, ho girovagato per il forum ed ho trovato un codice PHP che permette di fare questo controllo, ma anche quando inserisco il Codice Fiscale corretto mi dice che è sbagliato...
questo è il codice
<?php
{
if (ereg("^[0-9]{11}$", $form->data['cf'])) {
$form->validation_errors['cf'] = "Il codice fiscale inserito è relativo ad una persona giuridica.";
return false;
}
elseif
(!ereg("^[a-zA-Z]{6}[0-9]{2}[a-zA-Z]{1}[0-9]{2}[a-zA-Z]{1}[0-9]{3}[a-zA-Z]{1}$",
$form->data['cf'])) {
$form->validation_errors['cf'] = "Errore, il codice fiscale contiene caratteri non validi o non è della lunghezza esatta.";
return false;
}
else {
$s=0;
for ($i = 1; $i <= 13; $i += 2 ){
$c = $form->data['cf'][$i];
if ('0' <= $c && $c <= '9') {
$s += ord($c) - ord('0');
}
else {
$s += ord($c) - ord('A');
}
}
for ($i = 0; $i <= 14; $i += 2 ) {
$c = $form->data['cf'][$i];
switch( $c ){
case '0': $s += 1; break;
case '1': $s += 0; break;
case '2': $s += 5; break;
case '3': $s += 7; break;
case '4': $s += 9; break;
case '5': $s += 13; break;
case '6': $s += 15; break;
case '7': $s += 17; break;
case '8': $s += 19; break;
case '9': $s += 21; break;
case 'A': $s += 1; break;
case 'B': $s += 0; break;
case 'C': $s += 5; break;
case 'D': $s += 7; break;
case 'E': $s += 9; break;
case 'F': $s += 13; break;
case 'G': $s += 15; break;
case 'H': $s += 17; break;
case 'I': $s += 19; break;
case 'J': $s += 21; break;
case 'K': $s += 2; break;
case 'L': $s += 4; break;
case 'M': $s += 18; break;
case 'N': $s += 20; break;
case 'O': $s += 11; break;
case 'P': $s += 3; break;
case 'Q': $s += 6; break;
case 'R': $s += 8; break;
case 'S': $s += 12; break;
case 'T': $s += 14; break;
case 'U': $s += 16; break;
case 'V': $s += 10; break;
case 'W': $s += 22; break;
case 'X': $s += 25; break;
case 'Y': $s += 24; break;
case 'Z': $s += 23; break;
}
}
if (chr($s%26 + ord('A')) != $form->data['cf'][15]) {
$form->validation_errors['cf'] = "Errore, il codice fiscale inserito non è formalmente
corretto in quanto il codice di controllo non corrisponde.";
}
if( chr($s%26+ord('A'))!=$cf[15] )
return false;
return true;
}
}
?>
dov'è che sbaglio?
Il sito in questione è
www.misurediverse.it