Back to top

Autore Topic: [RISOLTO] controllo codice fiscale  (Letto 5752 volte)

Offline gotiche

  • Nuovo arrivato
  • *
  • Post: 10
    • Mostra profilo
[RISOLTO] controllo codice fiscale
« 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

Codice: [Seleziona]
<?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 += ){
      
$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 += ) {
      
$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?
« Ultima modifica: 05 Feb 2013, 13:11:14 da gotiche »

Offline BelinBelan

  • Instancabile
  • ******
  • Post: 3887
  • Sesso: Maschio
  • Niente di meno e niente di più. uguale? Forse.
    • Mostra profilo
Re:controllo codice fiscale
« Risposta #1 il: 05 Feb 2013, 08:48:56 »
Ciao,
innanzitutto partire da qui: http://www.joomla.it/articoli-community-16-e-17-tab/5234-guida-1-creare-form-in-joomla-17-con-chronoforms-v4-rc-20.html
 
Poi, forse e dico forse... un Return False ci starebbe meglio, chissà!  :D
--
Per piacere, no messaggi privati con richieste d'aiuto!!!

Offline gotiche

  • Nuovo arrivato
  • *
  • Post: 10
    • Mostra profilo
Re:controllo codice fiscale
« Risposta #2 il: 05 Feb 2013, 10:36:56 »
Grazie, sono riuscito. Posto il codice se puo' servire a qualcuno

Codice: [Seleziona]
<?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 += ){
      
$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 += ) {
      
$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."
;
  }
  else {
  echo
"";
  }
}
}
?>

« Ultima modifica: 05 Feb 2013, 13:10:09 da gotiche »

Offline BelinBelan

  • Instancabile
  • ******
  • Post: 3887
  • Sesso: Maschio
  • Niente di meno e niente di più. uguale? Forse.
    • Mostra profilo
Re:controllo codice fiscale
« Risposta #3 il: 05 Feb 2013, 10:37:56 »
Perfetto! ;)

Ricordati di scrivere [RISOLTO] nel titolo di questo thread! ;D
--
Per piacere, no messaggi privati con richieste d'aiuto!!!

Offline theshot

  • Nuovo arrivato
  • *
  • Post: 13
  • Sesso: Maschio
    • Mostra profilo
Re:[RISOLTO] controllo codice fiscale
« Risposta #4 il: 07 Feb 2013, 11:13:46 »
Questo codice mi sarebbe molto utile. Io ho la versione V3.2 di Chronoforms per Joomla 1.5 ma non capisco dove devo inserire il codice.
Ogni tentativo va a vuoto e non esegue nessun controllo. Per favore, qualcuno sa darmi indicazioni?
Grazie  :)
Lavoro ancora con Joomla 1.5.26 perchè non riesco a fare il passaggio dei siti a Joomla 2.5...qualcosa di nuovo é fatto con 2.5!

Offline claudiovis

  • Esploratore
  • **
  • Post: 91
    • Mostra profilo
Re:[RISOLTO] controllo codice fiscale
« Risposta #5 il: 04 Giu 2013, 16:30:52 »
ciao... ottimo script...  hai qualcosa già teastato su chronoforms  per la PIVA?   8)

Offline Max Ambrox

  • Esploratore
  • **
  • Post: 150
  • Sesso: Maschio
    • Mostra profilo
Re:[RISOLTO] controllo codice fiscale
« Risposta #6 il: 26 Giu 2013, 16:06:13 »
mi aggiungo anche io alla richiesta di Theshot, dove va inserito questo codice?

Offline Max Ambrox

  • Esploratore
  • **
  • Post: 150
  • Sesso: Maschio
    • Mostra profilo
Re:[RISOLTO] controllo codice fiscale
« Risposta #7 il: 26 Giu 2013, 16:17:09 »
Ragazzi il posto dove inserire il codice PHP l'ho trovato, adesso non capisco come mai inserisco i dati corretti e continua a dirmi che il codice fiscale inserito non è corretto, il sito in questione è il seguente..


http://www.misurediverse.it/index.php?option=com_chronoforms&view=form&Itemid=113


Se provate a compilare il form con i dati esatti, dice che il codice fiscale è sbagliato....cos'è che non và?
« Ultima modifica: 26 Giu 2013, 16:43:07 da Max Ambrox »

Offline BelinBelan

  • Instancabile
  • ******
  • Post: 3887
  • Sesso: Maschio
  • Niente di meno e niente di più. uguale? Forse.
    • Mostra profilo
Re:[RISOLTO] controllo codice fiscale
« Risposta #8 il: 27 Giu 2013, 16:37:53 »
ciao Max,

il codic postato non è valido formalmente per chronoforms in quando non restituisce un valore TRUE o FALSE in grado di essere intercettato da chronoforms stesso.

le ultime righe del codice cambiale così:
Codice: [Seleziona]
if( chr($s%26+ord('A'))!=$cf[15] )
    return false;
    return true;
In questo modo funziona alla grande.  ;D

Poi non ti accodare a post chiusi e risolti da trempo, ormai lo sai, apri un tuo topic e esponi la richiesta.
--
Per piacere, no messaggi privati con richieste d'aiuto!!!

 



Web Design Bolzano Kreatif