Back to top

Autore Topic: controllo codice fiscale chronoforms v4  (Letto 1802 volte)

Offline claudiovis

  • Esploratore
  • **
  • Post: 91
    • Mostra profilo
controllo codice fiscale chronoforms v4
« il: 30 Ago 2013, 16:31:53 »
Ciao a tutti

avevo trovato questo codice per il controllo del codice fiscale.  e all'inizio funzionava ..o almeno mi sembrava...
ora se lascio il campo vuoto mi segnala comunque un errore
Errore, il codice fiscale contiene caratteri non validi o non è della lunghezza esatta.
il mio campo non è obbligatorio... quindi se lasciato vuoto non devo avere errori mntre se compilato deve essere fatto il controllo sulla validità.
come e coa posso/devo correggere?

Codice: [Seleziona]
<?php

{

if (
ereg("^[0-9]{11}$"$form->data['cb_codfisc'])) {
$form->validation_errors['cb_codfisc'] = "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['cb_codfisc'])) {
$form->validation_errors['cb_codfisc'] = "Errore, il codice fiscale contiene caratteri non validi o non è della lunghezza esatta.";
  return 
false;
}
else {
  
$s=0;
  for (
$i 1$i <= 13$i += ){
      
$c $form->data['cb_codfisc'][$i];
      if (
'0' <= $c && $c <= '9') {
    
$s += ord($c) - ord('0');
      }
      else {
    
$s += ord($c) - ord('A');
      }
  }
  for (
$i 0$i <= 14$i += ) {
      
$c $form->data['cb_codfisc'][$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['cb_codfisc'][15]) {
$form->validation_errors['cb_codfisc'] = "Errore, il codice fiscale inserito non è formalmente corretto in quanto il codice di controllo non corrisponde.";
  return 
false;
  }
  else {
  echo
"";
  }
}
}
?>
« Ultima modifica: 30 Ago 2013, 16:45:19 da claudiovis »

Offline claudiovis

  • Esploratore
  • **
  • Post: 91
    • Mostra profilo
Re:controllo codice fiscale
« Risposta #1 il: 30 Ago 2013, 16:45:01 »
ah .. dimenticavo
codice inserito come "custom server side validation" nell'evento "on submit" in chronoforms v4

Offline claudiovis

  • Esploratore
  • **
  • Post: 91
    • Mostra profilo
Re:controllo codice fiscale chronoforms v4
« Risposta #2 il: 02 Set 2013, 09:36:06 »
nessun consiglio?

Offline claudiovis

  • Esploratore
  • **
  • Post: 91
    • Mostra profilo
Re:controllo codice fiscale chronoforms v4
« Risposta #3 il: 02 Set 2013, 12:40:33 »
non so se è giusto ma sembra funzionare....

ho aggiunto un if iniziale....  se è vuoto ...non fare nulla

Codice: [Seleziona]
{
if ($form->data['cb_codfisc'] == '') {
echo "";
return false;
}

me la passate come giusta?   metto il risolto nel titolo del post?

 



Web Design Bolzano Kreatif