Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Controllo NON formale del Codice fiscale

    Buongiorno a tutti.

    Dopo quasi una settimana di infruttuose ricerche ho infine deciso di rivolgermi a voi.

    Ho necessità di verificare la correttezza del codice fiscale inserito dagli utenti in un form, tuttavia ciò che ho trovato in giro (e per altro già implementato nel mio form!) sono dei meri controlli FORMALI del codice fiscale, ovvero dei controlli che NON tengono conto di nome, cognome, sesso dell'utente.

    Per farla breve, i vari javascript che ho trovato in rete accettano il mio codice fiscale sia che io sia maschio (Paolo), sia che io sia femmina (Paola). In entrambi i casi, infatti, il nome nel CF è lo stesso (PLA) e la discriminante è, in questo caso, il sesso.

    Concludendo: esistono degli script che eseguono il controllo anche sul sesso e su nome/cognome inseriti dall'utente?

    Spero di essermi spiegato e, soprattutto, di trovare un'anima pia che mi dia una mano

    Grazie in anticipo, Paolo.

  2. #2
    beh, per sapere se se la persona è maschio o femmina basta controllare se il giorno di nascita è maggiore o meno di 40, dato che per le femmine al giorno si somma 40. E poi puoi sempre controllare l'ultima cifra di controllo in base ai dati contenuti in http://it.wikipedia.org/wiki/Codice_fiscale

    Es.

    Paolo Rossi nato il 15 Giugno 1999 a Roma è: RSS PLA 99H15 H501 I
    Paola Rossi nata il 15 Giugno 1999 a Roma è: RSS PLA 99H55 H501 M

    Paolo è 15 Paola è 55
    I DON'T Double Click!

  3. #3
    Utente di HTML.it L'avatar di Andy_87
    Registrato dal
    Jun 2010
    Messaggi
    323
    Quello che dice Artorius è corretto però chiaramente nel form devi far dire all'utente se è maschio o femmina prima di controllare il CF, altrimenti riesci a capire con quello che ti ha detto Artorius se il CF è di un maschio o di una femmina ma senza un controllo incrociato non puoi capire se è coerente con gli altri dati. Comunque, è una cosa forse esagerata, ma potresti addirittura farlo uscire in automatico, chiaramente è un lavoro lungo, però sarebbe bello. Del resto ci sono dei siti che lo fanno quindi potresti prendere spunto.

  4. #4
    Originariamente inviato da artorius
    beh, per sapere se se la persona è maschio o femmina basta controllare se il giorno di nascita è maggiore o meno di 40, dato che per le femmine al giorno si somma 40.
    Anche tu c'hai ragione!

    Grazie dell'idea: vado subito a provarla!

    Alla prox e buona giornata

  5. #5
    Originariamente inviato da Andy_87 Comunque, è una cosa forse esagerata, ma potresti addirittura farlo uscire in automatico, chiaramente è un lavoro lungo, però sarebbe bello. Del resto ci sono dei siti che lo fanno quindi potresti prendere spunto.
    C'avevo pensato anch'io, ovvero: farlo calcolare in automatico dal js e successivamente implementare un controllo tra il codice fiscale generato e quello inserito dall'utente.

    Solo che volevo evitare una lungaggine del genere (che, a livello teorico, mi sembra cmq la miglior soluzione).

    Grazie della risposta

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Anche a me serve, perchè PAOLO ROSSI inizia con RSS PLA?
    L'ultima cifra in base a cosa è data?
    Se uno nasce il 3 avrà scritto 03 come data di nascita?

  7. #7
    Utente di HTML.it L'avatar di Andy_87
    Registrato dal
    Jun 2010
    Messaggi
    323
    @Vicar
    Cognome e nome sono generati prendendo le prima 3 consonanti del cognome e del nome, evidentemente, dato che Paolo ha solo 2 consonanti, per riempire il carattere mancante si prende la seconda lettera o qualcosa del genere comunque ti rimando a Wikipedia

    http://it.wikipedia.org/wiki/Codice_...codice_fiscale

  8. #8
    Fatto!

    Ho messo in pratica il consiglio di Artorius: passo al js i valori "sesso" e "giorno di nascita" ed eseguo i relativi controlli, ovvero le due combinazioni: "F < 40" e "M > 40" restituiscono CF errato).

    Grazie ancora per il sostegno morale

  9. #9
    Utente di HTML.it L'avatar di Andy_87
    Registrato dal
    Jun 2010
    Messaggi
    323
    Però, scusa se insisto, ma così fai solo il controllo sul sesso. Perchè se io mi chiamo Paolo Rossi e inserisco come codice fiscale: RSS PLA 80H30 H501 I tu sai che sono maschio ma non sai se gli altri dati sono corretti, inoltre come data di nascita, se fossi femmina, potrei mettere 80 però 80 - 40 = 40, il tuo script accetta tale data come femmina ma non esiste un mese con 40 giorni ..
    E' vero che vuoi un controllo NON formale però forse così è troppo informale :P

  10. #10
    Tranquillo, fai bene ad insistere: più idee = lavoro migliore

    Cmq il controllo che ho implementato su data di nascita e sesso si va ad AGGIUNGERE (e non a sostituire) ai controlli del CF che si trovano in giro nella rete, ergo la validità degli altri campi è garantita.

    Per quanto riguarda il giorno di nascita la scelta avviene tramite un SELECT, ovvero l'utente può al max selezionare 31 da cui ne consegue che il controllo > o < di 40 ha senso eccome

    Cmq nello specifico il controllo che uso è questo:

    codice:
    function codiceFISCALE(cfins)
       {
       var cf = cfins.toUpperCase();
       var cfReg = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
       if (!cfReg.test(cf))
          return false;
    
       var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
       var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
       var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
       var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
       var s = 0;
       for( i = 1; i <= 13; i += 2 )
          s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
       for( i = 0; i <= 14; i += 2 )
          s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
       if ( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
          return false;
       return true;
       }
    Cui ho aggiunto, come dicevo sopra, il controllo incrociato SEX e compleanno

    Alla prox e buona serata

    Paolo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.