Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Estrapolare dati da codice fiscale

2,083 views
Skip to first unread message

Falco Stellare

unread,
Sep 19, 2008, 4:13:00 AM9/19/08
to
Esiste uno script PHP per estrapolare i dati da un normale codice
fiscale italiano? Oppure una procedura, un tutorial, ecc.

Grazie per l'aiuto!


--
Falco Stellare

DeepVoid: www.deepvoid.it
DeepVoid's Log: www.deepvoidlog.com

Quasimodo

unread,
Sep 19, 2008, 4:35:24 AM9/19/08
to
Falco Stellare ha scritto:

> Esiste uno script PHP per estrapolare i dati da un normale codice
> fiscale italiano? Oppure una procedura, un tutorial, ecc.
>
> Grazie per l'aiuto!
>
>
Cos'ha di misterioso un codice fiscale? es: ABC DEF 50A01 A054x
ABC -> Cognome
DEF -> Nome
50 -> Anno di nascita (senza base)
A -> Mese di nascita (A=gennaio, ecc)
01 -> Giorno di nascita (01 -> 31 uomini, 41 -> 71 donne, i trans non
sono previsti)
A054 -> "Codice Belfiore", cioè il comune di nascita secondo una lista
di codici catastali
x -> una specie di CRC

Trovi tutte le info su Wikipedia (cerca "Codice Fiscale") o sul sito
dell'agenzia delle entrate.

Andrea

Andrea D'Amore

unread,
Sep 19, 2008, 5:04:41 AM9/19/08
to
In article <gavn1s$807$1...@newsreader1.mclink.it>,
Falco Stellare <falco.ste...@deepvoid.it> wrote:

> Esiste uno script PHP per estrapolare i dati da un normale codice
> fiscale italiano?

Non in maniera certa, il codice reale è quello assegnato dal Ministero
non quello calcolato con l'algoritmo.

Falco Stellare

unread,
Sep 19, 2008, 11:28:57 AM9/19/08
to
Quasimodo ha scritto:

> Cos'ha di misterioso un codice fiscale? es: ABC DEF 50A01 A054x

Andrea, ti ringrazio per le preziose indicazioni :-)

La parte che più mi interessa estrapolare riguarda la data e il luogo di
nascita, il nome e cognome sarà gestito per altre vie dall'applicazione
che stiamo sviluppando.

Jax

unread,
Sep 19, 2008, 4:40:59 PM9/19/08
to
Falco Stellare ha scritto:

> La parte che più mi interessa estrapolare riguarda la data e il luogo di

Cosa c'è di complicato?
http://it.wikipedia.org/wiki/Codice_fiscale
Per quanto riguarda la data è una cosa più che banale: XXZYY dove XX è
l'anno di nascita (vedremo come faranno a sapere se uno è nato nel 2003
o nel 1903... ma era così complicato usare 4 cifre io dico), Z è il mese
corrispondente alla tabella che c'è in wiki (basta un array
associativo per rappresentarlo), YY è il giorno: se è > 40 significa che
il soggetto è una donna e devi togliere 40 per ottenere il giorno reale.
La parte più rognosa (diciamo) è il codice catastale del comune di
nascita, perché devi scaricare il database dei codici catastali e quindi
ricercare il codice nel db.
Come al solito c'è chi si è sbattuto per te e ha già preparato un dump
sql da importare dove vuoi, con tutte le regioni, le province e i comuni
con anche i codici catastali qui:
http://www.redfoxy.it/articoli-e-guide/articoli/36-articoli/67-tutti-i-comuni-e-le-province-ditalia.html

> nascita, il nome e cognome sarà gestito per altre vie
> dall'applicazione che stiamo sviluppando.

Anche perché ti voglio vedere da 3 consonanti indovinare il nome e
soprattutto il cognome :D

--
Jax

Leonardo Serni

unread,
Sep 19, 2008, 6:00:22 PM9/19/08
to
On Fri, 19 Sep 2008 17:28:57 +0200, Falco Stellare
<falco.ste...@deepvoid.it> wrote:

>> Cos'ha di misterioso un codice fiscale? es: ABC DEF 50A01 A054x

>Andrea, ti ringrazio per le preziose indicazioni :-)

>La parte che più mi interessa estrapolare riguarda la data e il luogo di
>nascita, il nome e cognome sarà gestito per altre vie dall'applicazione
>che stiamo sviluppando.

Beh, anno, mese, giorno e sesso ce li hai direttamente. Il luogo di
nascita lo ricavi da un archivio di codici fiscali.

Estrarre i dati dal codice lo fai con preg_match o con unpack, vedi
tu cosa ti torna piu' comodo.

Leonardo

--
Enough, enough! But stranger, ere we part,
Glancing farewell to each nefarious bier,
This warning would I beg you take to heart:
There is an end to e'en the worst career!

Andrea D'Amore

unread,
Sep 20, 2008, 2:11:27 AM9/20/08
to
In article <gb12ou$ukr$1...@tdi.cu.mi.it>,
Jax <garetjax7...@yahoo.it> wrote:

> vedremo come faranno a sapere se uno è nato nel 2003
> o nel 1903...

Basta differenziare sull'ultimo carattere del codice.

Jax

unread,
Sep 20, 2008, 2:46:05 AM9/20/08
to
Andrea D'Amore ha scritto:

Chiaramente, ma lo deve fare il ministero, e quindi gli algoritmi di
controllo vanno in pappa (e bisogna implementare la forzatura, con tutto
quello che ne consegue).
Mi chiedo perché queste "eccezioni", quando è stato inventato il codice
fiscale, non siano state prese in considerazione e si sia agito di
conseguenza: era *così* difficile fare un codice fiscale *univoco*? E'
talmente strano che mi viene da pensare che sia stato pensato
volutamente non univoco...
E, se è strano per il codice fiscale, la stessa cosa vale per l'IBAN
(anche se in maniera molto meno grave), che è stato pensato ben più tardi...

O ho capito male la tua risposta?

--
Jax

Alex ARNZ

unread,
Sep 20, 2008, 5:54:19 AM9/20/08
to
Jax wrote:

> Mi chiedo perché queste "eccezioni", quando è stato inventato il codice
> fiscale, non siano state prese in considerazione e si sia agito di
> conseguenza: era *così* difficile fare un codice fiscale *univoco*?

Il codice fiscale è un codice di serie. Vai a vedere in altri paesi come è
fatto. Sembra più un numero di serie che altro. In Italia avete la fortuna
di avere un codice fiscale abbastanza "parlante" che può essere generato e
decodificato con "sufficiente" facilità e sicurezza.

Ma nonostatante questo, il MIO codice fiscale non coincide con quello
generato dai vari programmi, tant'è che a suo tempo non avevo potuto
iscrivermi a determinati siti (alice, per esempio) in quanto non
riconosceva il mio codice fiscale come esatto. Ed anche oggi, spesso, ho
questo problema. Il tutto perché ci sono persone/organizzazioni che tentano
di decodificare qualcosa che non ha una decodifica certa.

NOTA: il mio nome, come potete vedere ha dentro una X ed il mio cognome
sembra già di per se un codice fiscale. Non credo che la difformità dei due
codici sia dovuta ad un doppione...

--
Please visit my website: http://www.kuschelbaerchen.net
$DO || ! $DO ; try
try: command not found
[Do or do not. There is no try - by Yoda]

Andrea D'Amore

unread,
Sep 20, 2008, 7:07:28 AM9/20/08
to
In article <gL3Bk.621$Uo5...@tornado.fastwebnet.it>,
Alex ARNZ <from...@kuschelbaerchen.net> wrote:

> NOTA: il mio nome, come potete vedere ha dentro una X ed il mio cognome
> sembra già di per se un codice fiscale.

XLA NRZ ? ;-)

> Non credo che la difformità dei due codici sia dovuta ad un doppione...

Eh no, Alex Arnz non mi sembra un nome diffuso.

Grazie della testimonianza, esempio vivente di come si può rendere
difficile la vita agli altri, come sito che pretende di fare la verifica
formale del CF.
Hai desistito o hai usato un codice falso?

Jax

unread,
Sep 20, 2008, 11:00:03 AM9/20/08
to
Alex ARNZ ha scritto:

> Il codice fiscale è un codice di serie. Vai a vedere in altri paesi come è
> fatto. Sembra più un numero di serie che altro. In Italia avete la fortuna
> di avere un codice fiscale abbastanza "parlante" che può essere generato e
> decodificato con "sufficiente" facilità e sicurezza.

Vero, è anche molto più semplice da ricordare.

> Ma nonostatante questo, il MIO codice fiscale non coincide con quello
> generato dai vari programmi, tant'è che a suo tempo non avevo potuto
> iscrivermi a determinati siti (alice, per esempio) in quanto non
> riconosceva il mio codice fiscale come esatto. Ed anche oggi, spesso, ho
> questo problema. Il tutto perché ci sono persone/organizzazioni che tentano
> di decodificare qualcosa che non ha una decodifica certa.

Sei l'esempio vivente di quello che volevo dire. Se dovete fare un
algoritmo che generi un codice *univoco*, fatelo bene, cazzo, altrimenti
sorgono i problemi come il tuo.
Non ho ben capito se il tuo disappunto è verso le istituzioni che ti
hanno dato un codice fiscale astruso o verso chi fa i controlli di
validità formale... nel secondo caso non è giusto che tu te la prenda
con loro... nel codice fiscale esiste l'ultima lettera che è di
controllo, e dovrebbe essere fatta apposta per avere la certezza
*matematica* che il codice sia corretto.
Se questa certezza matematica non c'è, tanto valeva non metterla e
basta: nessuno avrebbe fatto un algoritmo di controllo (tranne che sui
dati inseriti) e tu non avresti avuto alcun problema.

> NOTA: il mio nome, come potete vedere ha dentro una X ed il mio cognome
> sembra già di per se un codice fiscale. Non credo che la difformità dei due
> codici sia dovuta ad un doppione...

Fammi indovinare: RNZ LXA... :)
In effetti è un caso particolare, ma non così tanto... pensa a tutti gli
immigrati cinesi che si chiamano Li, Chan, Chu...

--
Jax

Alex ARNZ

unread,
Sep 20, 2008, 11:24:39 AM9/20/08
to
Jax wrote:

> Vero, è anche molto più semplice da ricordare.

Appunto.

> Sei l'esempio vivente di quello che volevo dire. Se dovete fare un
> algoritmo che generi un codice *univoco*, fatelo bene, cazzo, altrimenti
> sorgono i problemi come il tuo.

I codici sono univoci.

> Non ho ben capito se il tuo disappunto è verso le istituzioni che ti
> hanno dato un codice fiscale astruso o verso chi fa i controlli di
> validità formale... nel secondo caso non è giusto che tu te la prenda
> con loro... nel codice fiscale esiste l'ultima lettera che è di
> controllo, e dovrebbe essere fatta apposta per avere la certezza
> *matematica* che il codice sia corretto.

Secondo le direttive del ministero, il mio codice è corretto. Secondo molti
programmi che sono in giro no. Perchè il mio vero nome è Alexander, mentre
il codice fiscale è LXD e non LXN, eppure il codice di controllo lo
verifica correttamente.

> Se questa certezza matematica non c'è, tanto valeva non metterla e
> basta: nessuno avrebbe fatto un algoritmo di controllo (tranne che sui
> dati inseriti) e tu non avresti avuto alcun problema.

No, la maggiorparte dei siti che non funzionano, PRETENDONO che il mio
codice fiscale, nella parte del nome, sia LXD. Se metto LXD riesco ad
iscrivermi correttamente, probabilmente con il codice fiscale di altre
persone, però, oppure con un codice fiscale che non è assegnato ad alcuno.

I programmi di controllo del codice fiscale non controllano l'esattezza del
carattere di controllo. Ma controllano che il codice fiscale sia quello che
loro pensano venga assegnato quando il tuo nome è unico; anni fa in una
qualche trasmissione c'era un tizio che lamentava un problema simile, e
continuava ad iscriversi ovunque con il codice fiscale del fratello gemello
(che aveva un nome molto simile). In pratica per moltissime istituzioni lui
non aveva diritto ad esistere.

Un altro caso particolare fu quello di persone di mia conoscenza, nate
nell'ex DDR, molti programmi di generazione dei codici (e quindi di
decodifica) non ammettono più l'esistenza passata dell'ex repubblica
democratica tedesca, quindi quelle persone hanno ora un sacco di problemi,
qui in Italia.

Alex ARNZ

unread,
Sep 20, 2008, 11:29:13 AM9/20/08
to
Andrea D'Amore wrote:

> Grazie della testimonianza, esempio vivente di come si puň rendere


> difficile la vita agli altri, come sito che pretende di fare la verifica
> formale del CF.

Verifica fatta alla membro di segugio secondo delle regole che sono piů o
meno valide nel 98% dei casi, secondo le statistiche del ministero (non
ricordo dove le vidi)

> Hai desistito o hai usato un codice falso?

Per Alice ho desistito, felicemente, in altri casi uso il codice che loro
pretendono che io debba avere in mano ... contenti loro!

Chiedono il codice fiscale per evitare iscrizioni false, e poi prendendono
iscrizioni false da chi vuole inserire i dati veri.

Jax

unread,
Sep 20, 2008, 11:47:02 AM9/20/08
to
Alex ARNZ ha scritto:

>> Sei l'esempio vivente di quello che volevo dire. Se dovete fare un
>> algoritmo che generi un codice *univoco*, fatelo bene, cazzo, altrimenti
>> sorgono i problemi come il tuo.
>
> I codici sono univoci.

Nell'improbabile (ma possibile) situazione in cui nello stesso giorno e
nello stesso paese nascono due persone con lo stesso nome la frittata è
fatta, bisogna intervenire manualmente per renderli univoci.
E' questo che intendevo.

> Secondo le direttive del ministero, il mio codice è corretto. Secondo molti
> programmi che sono in giro no. Perchè il mio vero nome è Alexander, mentre
> il codice fiscale è LXD e non LXN, eppure il codice di controllo lo
> verifica correttamente.

Però non ho ancora capito qual è il codice fiscale che hai sul tesserino :)
Secondo il solito algoritmo, se ti chiami Alexander il tuo codice del
nome dovrebbe essere LND (1a, 3a e 4a consonante), così come io che mi
chiamo Giovanni ho GNN.
Certo che se all'agenzia delle entrate si sono inventati di darti LXN
sono dei gran geni...

> No, la maggiorparte dei siti che non funzionano, PRETENDONO che il mio
> codice fiscale, nella parte del nome, sia LXD. Se metto LXD riesco ad
> iscrivermi correttamente, probabilmente con il codice fiscale di altre
> persone, però, oppure con un codice fiscale che non è assegnato ad alcuno.

Può essere un caso... mai provato con LND?

> I programmi di controllo del codice fiscale non controllano l'esattezza del
> carattere di controllo. Ma controllano che il codice fiscale sia quello che
> loro pensano venga assegnato quando il tuo nome è unico;

Da quello che mi risulta, la maggior parte dei programmi fanno proprio
(e solo) il controllo del check digit. Solo in rari casi controllano
l'esattezza anche prendendo nome, cognome e dati di nascita.

> Un altro caso particolare fu quello di persone di mia conoscenza, nate
> nell'ex DDR, molti programmi di generazione dei codici (e quindi di
> decodifica) non ammettono più l'esistenza passata dell'ex repubblica
> democratica tedesca, quindi quelle persone hanno ora un sacco di problemi,
> qui in Italia.

Permettimi, programmi scritti col culo. Se una nazione non esiste oggi
non è che tutti quelli che ci sono nati non esistono :)

--
Jax

Jax

unread,
Sep 20, 2008, 11:54:51 AM9/20/08
to
Jax ha scritto:

> Nell'improbabile (ma possibile) situazione in cui nello stesso giorno e
> nello stesso paese nascono due persone con lo stesso nome la frittata è
> fatta, bisogna intervenire manualmente per renderli univoci.
> E' questo che intendevo.

Altro che improbabile... :)
http://it.wikipedia.org/wiki/Omocodia

Comunque rileggendo il tuo post ho capito cosa intendevi: siccome ci
sono casi in cui non si applica l'algoritmo standard di calcolo, sarebbe
giusto che nei programmi in generale non venissero fatte verifiche sul
codice fiscale inserito...
Ti potrei anche dar ragione per concetto, ma secondo me è giusto che ci
sia un controllo: quello che è oggettivamente sbagliato è che non sia
possibile una forzatura.
Nell'anagrafica clienti e fornitori della mia ditta ho visto cose che tu
non immagini, solo perché il programma ti avvisa che il codice è
sbagliato ma ti lascia forzare.....

--
Jax

Jax

unread,
Sep 20, 2008, 11:57:00 AM9/20/08
to
Jax ha scritto:

> Altro che improbabile... :)
> http://it.wikipedia.org/wiki/Omocodia

La chiudo qui riportando l'ultima frase, che è assolutamente fantastica.

"Ad oggi, il modulo di segnalazione e reclami del sito delle agenzie
delle entrate, restituisce errore in caso di inserimento di un codice
omocode."

Non so se ridere o se piangere!

--
Jax

Andrea D'Amore

unread,
Sep 20, 2008, 1:59:39 PM9/20/08
to
In article <gb36cf$el4$1...@tdi.cu.mi.it>,
Jax <garetjax7...@yahoo.it> wrote:

> siccome ci sono casi in cui non si applica l'algoritmo standard di
> calcolo,

Il punto è che non è un algoritmo standard, il CF è solo quello che ti
assegna il Ministero.

katayama

unread,
Sep 20, 2008, 4:05:26 PM9/20/08
to
Alex ARNZ ha scritto:

> Secondo le direttive del ministero, il mio codice è corretto. Secondo molti
> programmi che sono in giro no. Perchè il mio vero nome è Alexander, mentre
> il codice fiscale è LXD e non LXN, eppure il codice di controllo lo
> verifica correttamente.
>

Teoricamente dovrebbe essere LND:
le X vanno scartate perche' vengono inserite in caso di nomi lunghi meno
di tre lettere.
strano che ti abbiano dato LXD al max mi sarei aspettato LXN.

marco....@gmail.com

unread,
Apr 20, 2014, 6:00:46 PM4/20/14
to
Scusate ragazzi, non capisco questa diatriba: qua si parla di "decodificare" il codice fiscale, non di calcolarlo !

Io, ad esempio, avrei bisogno di sapere se una persona è maggiorenne o meno.

Questo è il codice (da me modificato) per determinarlo partendo da una data, ma come farlo dal codice fiscale ?

if ((intval(substr(date('Ymd') - date('Ymd', strtotime( >>> qui và la data di nascita, con separatore - <<< )), 0, -4)))>=18) { echo "Adulto"; } else { echo "Minore"; };

Leonardo Serni

unread,
Apr 20, 2014, 6:29:33 PM4/20/14
to
On Sun, 20 Apr 2014 15:00:46 -0700 (PDT), marco....@gmail.com wrote:

>Scusate ragazzi, non capisco questa diatriba: qua si parla di "decodificare" il codice fiscale, non di calcolarlo !
>Io, ad esempio, avrei bisogno di sapere se una persona è maggiorenne o meno.
>Questo è il codice (da me modificato) per determinarlo partendo da una data, ma come farlo dal codice fiscale?

Se ti bastano gli anni, compaiono in chiaro nel CF (aggiungi 1900 se la cifra
e' superiore a 14, altrimenti 2000).

La lettera dopo le due cifre degli anni codifica il mese, trovi la tabella su
Wikipedia. Poi ci sono altre due cifre che rappresentano il giorno di nascita
(fai il calcolo modulo 40: $giorno = $NN % 40. 51 ti da' 11, per esempio).

Leonardo

--

Then felt I like some watcher of the skies, when a new planet swims into his ken;
Or like stout Cortez when with eagle eyes, he star'd at the Pacific; and all his men
Look'd at each other with a wild surmise - silent, upon a peak in Darien.
0 new messages