Newsgroup: it.comp.www.php
Titolo: Verifica Codice fiscale :)

Vorrei verificare il codice fiscale, in giro ho trovato solo
generatori, io devo solo verificare la correttezza non generarlo, mi
sapete aiutare?
Grazie
--    _  _______
  /| // /__  __/ Kirys <Remove DELTHIS from the address to reply>
 / |/ \   / /    Kirys Tech 2000: 
http://www.kt2k.com
/__|\__\ /_/ 2000

hmm.. io ti consiglio di fare il controllo lato client con javascript.
trovi qualcosa al 99% su 
www.jspoint.it
CIAO!
Gusher
"Kirys" <uniK...@DELTHIShotmail.com> ha scritto nel messaggio
news:r3octtc430rcho7cm...@4ax.com...


--    _  _______
se vuoi ti posto le funzioni ke ho utilizzato io, ke usano ereg con estensioni perl.
Anzi adesso ti metto la funzione adesso :))
Eccotela...
function check_codice($codicefiscale) {
  if ((empty($codicefiscale))||(ereg("[^a-zA-Z0-9]",$codicefiscale,$array))||(strlen($codicefiscale)!=16)) return 0;
    else return 1;  }
Ritorna 1 se e' corretto.
Pero' controlla soltanto la lunghezza e i caratteri ora ke ci penso. Inizia con questo e poi vedo di fare qualcosa di 
piu' preciso:)
Puoi fartelo anke da solo con quest'altro esempio, ke controlla la correttezza di una mail...
function check_email($email) {
  if ((empty($email))||(!ereg("([a-zA-Z0-9\.]+)(@{1})([a-zA-Z0-9]{2,})\.([a-zA-Z0-9]{2,})",$email,$array))||(ereg("([\|\<\>\\\/]+)",$email,$array))||(empty($email))) return 0;
   else return 1;
A vederla adesso, se te la deevo spiegare non saprei farlo:) Cmq e' tutto spiegato per bene su un manuale ke ti descrive le funzioni ereg.
Bye.
-- 
WEbdOM webmaster di 
www.metronic.it
 
il sito sulla telefonia ai prezzi che cercavi
Iscriviti a Pillol@ - la newsletter sulla telefonia (e non solo).
Metronic.It mobile phone philosophy

Se non trovi nulla generalo e poi confrontali....in questo modo, a
parte casi di omonimia, sei coperto.
Ciao
--------
Paolo Dell'Unto
gab...@tiscalinet.it
ICQ # 770759
On Wed, 24 Oct 2001 08:35:18 +0200, Kirys
<uniK...@DELTHIShotmail.com> wrote:



e che se poi disabilitano JS da browser o il loro browser non lo
supporta non funge  :/
Comunque ci guardo magari poi lo converto :D
Ciao


Bye.
ergh :)
enreg e' un bel pasticcio... me la devo studiare x benino :D
CIao e grazie 


enreg e' un bel pasticcio... me la devo studiare x benino :D
Nel caso del codice fiscale e' meglio se fai in un altro modo:
// La regexp esatta per un codice fiscale secondo la normativa
// ministeriale e':
// [A-Z][A-Z][A-Z][A-Z][A-Z][A-Z][0-9][0-9][ABCDEHLMPRST][0-6][0-9] \
// [A-Z][A-Z0-9][A-Z0-9][A-Z0-9][A-Z]
$c = "[A-Z]";		// Carattere
$m = "[ABCDEHLMPRST]";	// Carattere indicante un mese
$n = "[0-9]";		// Numero
$x = "[A-Z0-9]";	// Entrambi
if (!ereg("^$c$c$c$c$c$c$n$n$m$n$n$c$x$x$x$c$", $codice))
{
	// Codice grammaticalmente scorretto (numeri al
	// posto delle cifre o viceversa... o lunghezza
	// errata)
}
else
{
	// Verifica sintattica
	$checksum = 0;
	$chkTab		= "ABCDEFGHIJ0123456789KLMNOPQRSTUVWXYZ";
	$chkAlf		= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	$chkEven	= array(
			0,1,2,3,4,5,6,7,8,9,
                        0,1,2,3,4,5,6,7,8,9,
                        10,11,12,13,14,15,16,17,18,19,
                        20,21,22,23,24,25 );
	$chkOdd		= array(
			1,0,5,7,9,13,15,17,19,21,
                        1,0,5,7,9,13,15,17,19,21,
                        2,4,18,20,11,3,6,8,12,14,
                        16,10,22,25,24,23 );
	for ($i=0; $i < 15; $i++)
	{
		$x = ($i%1) ? $chkOdd : $chkEven;
		for($j=0; $j < 36; $j++)
		{
			if ($codice[$i]==$chkTab[$j])
			{
				$check += $x[$j];
				break;
			}
		}
	}
	if ($codice[15] != $chkAlf[$check % 26])
	{
		// Sintassi scorretta. L'ultimo digit non è
		// quello atteso.
	}
}
Leonardo SE&O
-- 
Nior thainig ar major i dtus an lae chugainn,
is ni rabhamar fein ann i gcoir na gceart
ach mar sheolfai aoireacht bo gan aoire,
ar thaobh na greine de Sliabh na mBan.