ciao ti ringrazio per la risposta.
il manuale l'ho comprato ho preso quello della wrov beginning PHP5, solamente la teoria e un pò diversa dalla pratica.
Adesso ho riscritto la funzione in questo modo:
Codice PHP:
<html>
<head><title></title></head>
<body>
<?php
if(isset($_POST['posted'])){
$pi=$_POST['pi'];
function 
ControllaPIVA($pi)
{
    if( 
$pi == '' ){  return '';}
     if( 
strlen($pi) != 11 )
        return 
"La lunghezza della partita IVA non &egrave;\n"
        
."corretta: la partita IVA dovrebbe essere lunga\n"
        
."esattamente 11 caratteri.\n";
    if( ! 
ereg("^[0-9]+$"$pi) )
        return 
"La partita IVA contiene dei caratteri non ammessi:\n"
        
."la partita IVA dovrebbe contenere solo cifre.\n";
    
$s 0;
    for( 
$i 0$i <= 9$i += )
        
$s += ord($pi[$i]) - ord('0');
    for( 
$i 1$i <= 9$i += ){
        
$c 2*( ord($pi[$i]) - ord('0') );
        if( 
$c )  $c $c 9;
        
$s += $c;
    }
    if( ( 
10 $s%10 )%10 != ord($pi[10]) - ord('0') )
        return 
"La partita IVA non &egrave; valida:\n"
        
."il codice di controllo non corrisponde.";
    return 
'';
    

}
    
$var 1;
echo 
ControllaPIVA($var);
}


?>
<form method="POST" action="partita.php">
<input type="hidden" name="posted" value="true">
<input type="text" name="pi">
<input type="submit" value="controlla partita iva">
</form>
</body>
</html>
Solamente quando si esegue lo script vi visualizza direttamente "La lunghezza della partita IVA non è corretta......"
e poi di quella funzione mi viene controllata strlen($pi) != 11 cioè la lunghezza della stringa.
Help me!!