Tips&Tricks I trucchi del mestiere

 

La verifica della carta di credito

Questa funzione sviluppata in linguaggio PHP verifica l'esattezza di un codice di partita iva. La funzione restituisce 1 nel caso in cui il codice risulta corretto. Per l'utilizzo basta includere il programma in un file e richiamare la funzione CheckIVA passando come argomento la partita iva da controllare.
Tip fornito dal Sig. Rosario Sensale.

<?php
## Creato da Rosario Sensale  ##
## E.Mail gsensa@freemail.it  ##
function CheckPIva($partita_iva)
{

$dimensione=strlen($partita_iva);
$somma_disp=0;
$somma_pari=0;
$somma_totale=0;
$temp=0; //ritorna 0 se c'Φ un errore e 1 nel caso contrario

//controllo la dimensione
if ($dimensione == 11) {
        $somma_disp=intval($partita_iva[0]) + intval($partita_iva[2]) + intval($partita_iva[4]) + intval($partita_iva[6]) + intval($partita_iva[8]);

        //controllo pari
        $temp_somma=intval($partita_iva[1])*2;
        $temp_str=strval($temp_somma);
        if ($temp_somma >= 10){
            $somma_pari=$somma_pari + intval($temp_str[0]) + intval($temp_str[1]);
        }else{
            $somma_pari=$somma_pari + $temp_somma;
        }

        $temp_somma=intval($partita_iva[3])*2;
        $temp_str=strval($temp_somma);
        if ($temp_somma >= 10){
            $somma_pari=$somma_pari + intval($temp_str[0]) + intval($temp_str[1]);
        }else{
            $somma_pari=$somma_pari + $temp_somma;
        }

        $temp_somma=intval($partita_iva[5])*2;
        $temp_str=strval($temp_somma);
        if ($temp_somma >= 10){
            $somma_pari=$somma_pari + intval($temp_str[0]) + intval($temp_str[1]);
        }else{
            $somma_pari=$somma_pari + $temp_somma;
        }

        $temp_somma=intval($partita_iva[7])*2;
        $temp_str=strval($temp_somma);
        if ($temp_somma >= 10){
            $somma_pari=$somma_pari + intval($temp_str[0]) + intval($temp_str[1]);
        }else{
            $somma_pari=$somma_pari + $temp_somma;
        }

        $temp_somma=intval($partita_iva[9])*2;
        $temp_str=strval($temp_somma);
        if ($temp_somma >= 10){
            $somma_pari=$somma_pari + intval($temp_str[0]) + intval($temp_str[1]);
        }else{
            $somma_pari=$somma_pari + $temp_somma;
        }

        //somma totale
        $somma_totale=$somma_pari+$somma_disp;
        //elemento unita'
        $temp_str=strval($somma_totale);
        $controllo=10-intval($temp_str[1]);
        
        
        if (intval($partita_iva[10]) == $controllo) {
            $temp=1;
        }else{
            $temp=0;
        }
}else{
    $temp=0; //non sono 11 caratteri
}
return $temp;
}
?>