3
« il: 05 Feb 2013, 08:38:58 »
Ciao a tutti, sto cercando di far controllare il codice fiscale su un campo. Il Field Name, Field ID e Field Class si chiamano tutti cf, ho creato un tasto submit, su events ho messo su On load solo show html, in on submit un Custom Server Side Validation con questo codice
<?php
function controllocf ($cf) {
if (strlen($cf)==0){
$messaggio = "Errore, il campo è vuoto.";
return array ($messaggio);
}
elseif (ereg("^[0-9]{11}$", $cf)) {
$messaggio = "Il codice fiscale inserito è relativo ad una persona
giuridica.";
return array ($messaggio);
}
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}$",
$cf)) {
$messaggio = "Errore, il codice fiscale contiene caratteri non validi o
non è della lunghezza esatta.";
return array ($messaggio);
}
else {
$s=0;
for ($i = 1; $i <= 13; $i += 2 ){
$c = $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 = $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')) != $cf[15]) {
$messaggio = "Errore, il codice fiscale inserito non è formalmente
corretto in quanto il codice di controllo non corrisponde.";
}
else {
$messaggio = "Ok";
return array ($messaggio);
}
}
}
?>
Poi su On fail ho messo Event loop, quando vado a cliccare sul bottone submit e il campo cf è vuoti va avanti ugualmente.., cosa sbaglio?