Newsgroup: it.comp.www.php
Titolo: Estrapolare dati da codice fiscale

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

 
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

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

 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.


 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

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!

 o nel 1903...
Basta differenziare sull'ultimo carattere del codice.

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

 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]

 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?

 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

 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.


 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.


 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

 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

 
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

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

 
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.

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"; };

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.