Controllo del codice fiscale/partita iva

Max61

Utente Attivo
2 Mar 2014
740
4
18
Salve, come da titolo ho bisogno di inserire nel db il codice fiscale e/o partita iva dopo la verifica di correttezza.
Ho trovato in rete un modulo per la verifica, ma quando lo vado ad inserire nel db il campo è vuoto.

JavaScript:
function ControllaCF(cf)
{
    cf = cf.trim().toUpperCase();
    if( cf.length === 0 )
        return "";
    else if( cf.length !== 16 )
        return "Codice Fiscale: lunghezza errata.";
    if( ! /^[0-9A-Z]{16}$/.test(cf) )
        return "Codice Fiscale: caratteri non validi.";
    var s = 0;
    var even_map = "BAFHJNPRTVCESULDGIMOQKWZYX";
    for(var i = 0; i < 15; i++){
        var c = cf[i];
        var n = 0;
        if( "0" <= c && c <= "9" )
            n = c.charCodeAt(0) - "0".charCodeAt(0);
        else
            n = c.charCodeAt(0) - "A".charCodeAt(0);
        if( (i & 1) === 0 )
            n = even_map.charCodeAt(n) - "A".charCodeAt(0);
        s += n;
    }
    if( s%26 + "A".charCodeAt(0) !== cf.charCodeAt(15) )
        return "Codice Fiscale: codice di controllo non valido.";
    return "";
}


function ControllaPIVA(pi)
{

    pi = pi.trim();
    if( pi.length === 0 )
        return "";
    else if( pi.length !== 11 )
        return "PI: lunghezza errata.";
    if( ! /^[0-9]{11}$/.test(pi) )
        return "Partita Iva: caratteri non validi.";
    var s = 0;
    for(var i = 0; i < 11; i++ ){
        var n = pi.charCodeAt(i) - "0".charCodeAt(0);
        if( (i & 1) === 1 ){
            n *= 2;
            if( n > 9 )
                n -= 9;
        }
        s += n;
    }
    if( s % 10 !== 0 )
        return "Partita Iva: codice di controllo non valido.";
    return "";
}


function verifica()
{
    var codice_fiscale = document.form1.codice_fiscale.value.replace(/\s/g, "");
    document.form1.codice_fiscale.focus();

    var err = "";
    if( codice_fiscale.length == 0 )
        err = "campo codice fiscale non valorizzato!\n";
    else if( codice_fiscale.length == 16 )
        err = ControllaCF(codice_fiscale);
    else if( codice_fiscale.length == 11 )
        err = ControllaPIVA(codice_fiscale);
    else
        err = "Il codice introdotto non è valido:\n\n" +
            "  - un codice fiscale deve essere lungo 16 caratteri;\n\n" +
            "  - una partita IVA deve essere lunga 11 caratteri.\n";

    if( err.length > 0 )
        alert("VALORE ERRATO\n\n" + err + "\nCorreggi e riprova!");
    else
        alert("Il codice è valido.");
}

</script>
Questo è il campo di input
PHP:
<?php echo str_repeat("&nbsp;",4);?>Cod. Fiscale/Partita IVA&nbsp;<input type="text" name="codice_fiscale"  value="" style="color:black; font-family:arial; font-size: 11pt"; maxlength="16" size="18" placeholder="Codice Fiscale/Partita IVA" >
Qualcuno mi può dare una mano?
Grazie
Max61
 
Ultima modifica:

Max61

Utente Attivo
2 Mar 2014
740
4
18
Ciao e grazie, non l'ho postato perchè penso che il problema sta in quel codice, perchè se metto l'input senza controllo funziona.
PHP:
$codice_fiscale = $_POST['codice_fiscale'];
$codice_fiscale = strtoupper(strtolower($codice_fiscale));

$query="INSERT INTO tblresidenti (cognome,nome,data_nascita,codice_fiscale,int_scheda_fam,cod_anagrafe,residenza,cap,intervento,civico_ass,telefono_fisso,cellulare,mail,note_residente,id_intervento,num_edificio,vecchio_civico)
VALUES ('$cognome','$nome','$data_nascita','$codice_fiscale','$int_scheda_fam','$cod_anagrafe','$residenza','$cap','$intervento','$civico_ass','$telefono_fisso','$cellulare','$mail','$note_residente','$id_intervento','$num_edificio','$vecchio_civico')";
questo è il pulsante di controllo
PHP:
<input type=button name=b1 value="   Controlla   " onclick="verifica()" />
mi sono accorto che se cambio questo questo name=b1 non funziona più...
 

Tommy03

Utente Attivo
6 Giu 2018
616
58
28
20
Vicenza
Secondo me sarebbe da cambiare un po' tutta la struttura (non è molto comodo dover schiacciare un pulsante per controllare), però se vuoi risolvere in modo un po' "spartano" senza cambiare troppo il codice, secondo me potresti intanto cambiare questo da cosi:
HTML:
if( err.length > 0 )
        alert("VALORE ERRATO\n\n" + err + "\nCorreggi e riprova!");
    else
        alert("Il codice è valido.");
A cosi:
HTML:
if( err.length > 0 )
        alert("VALORE ERRATO\n\n" + err + "\nCorreggi e riprova!");
    else
         document.form1.nascosto.value=codice_fiscale;
         alert("Il codice è valido.");
}
Poi aggiungi al form un input hidden:
HTML:
<input type="hidden" name="nascosto" id="nascosto" value="">
E poi nel PHP cambi da cosi:
PHP:
$codice_fiscale = $_POST['codice_fiscale'];
A cosi:
PHP:
$codice_fiscale = $_POST['nascosto'];
Non so quale sia il problema, ma se la validazione funzionava cosi dovrebbe andare...
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
Ciao, ho provato ma mi da due errori:
1- ho provato a fare il controllo di questa stringa "a<gf<dg<d" me la da come codice corretto
2-quando vado ad inserire mi da questo errore " Notice: Undefined index: nascosto in C:\xampp\htdocs\toponomastica\views\InserisciResidenti.php on line 56 "
Altrimenti se hai una soluzione migliore senza dover fare il controllo con il pulsante tanto meglio
 
Ultima modifica:

Max61

Utente Attivo
2 Mar 2014
740
4
18
Allora mi sa che è un problema nella funzione js. Ci sono stringhe con cui ti da errore o è un problema di tutte? Senza l'aggiunta della riga che mi hai inviato il codice funziona bene.
Nella form ci sono questi due input
PHP:
<form name=form1><input type="hidden" name="nascosto" id="nascosto" value="">
<?php echo str_repeat("&nbsp;",4);?>Cod. Fiscale/Partita IVA&nbsp;<input type="text" name="codice_fiscale"  value="" style="color:black; font-family:arial; font-size: 11pt"; maxlength="16" size="18" placeholder="Codice Fiscale/Partita IVA" >
 

Tommy03

Utente Attivo
6 Giu 2018
616
58
28
20
Vicenza
ho sempre usato soltanto Jquery, quindi forse è in questa riga che mi sbaglio...
document.form1.nascosto.value=codice_fiscale;
prova a cambiarla cosi...
HTML:
document.getElementById("nascosto").value=codice_fiscale;
Hai provato ad ispezionare il codice per vedere se il value="" di "nascosto" cambia dopo aver cliccato il bottone di controllo?
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
Stesso errore
1- ho provato a fare il controllo di questa stringa "a<gf<dg<d" me la da come codice corretto
 

Tommy03

Utente Attivo
6 Giu 2018
616
58
28
20
Vicenza
hai provato a vedere se si riempie "nascosto" ispezionando il sorgente mentre provi? Prova con degli alert per capire dov'è l'errore?
La pagina è online o sei in locale?
 

Hormus

Utente Attivo
26 Giu 2020
83
10
8
Stai solamente utilizzando un linguaggio lato cliente e forse alert non funziona per il tuo browser prova console.log.
I valori inviati dal cliente al server sono sempre accessibili ne consegue devi creare anche una verifica in php.
 
Discussioni simili
Autore Titolo Forum Risposte Data
G controllo remoto del dvr da iphone IP Cam e Videosorveglianza 1
M Creazione del pannello di controllo dell'utente HTML e CSS 2
M Controllo funzionalità del browser Javascript 4
peppoweb GoogleStats 2.0: statistiche del tuo sito sotto controllo SEO e Posizionamento 0
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
Z Controllo giorni MYSQL PHP 0
M Problema con controllo form in real time jQuery 6
MarcoGrazia jquery validate() controllo checkbox jQuery 2
S Software windows10 per controllo contenuti web Windows e Software 6
S Controllo appuntamenti disponibili sul db PHP 5
L input (controllo se è stato modificato o no). PHP 1
W Controllo competitors serp SEO e Posizionamento 2
bubino8 [Javascript] popup di controllo elimina dopo window.print(); Javascript 0
M [MS Access] controllo valido se MS Access 8
MarkRed Come indicare, in una maschera, il primo controllo d'input, tipo "SetFocus" jQuery 9
C [PHP] Controllo <select> comportamento anomalo PHP 2
elpirata [Javascript] Controllo campi required non effettuato Javascript 2
A [PHP] Controllo nome utente form di registrazione PHP 4
L [PHP] controllo dimensione immagine per il resize PHP 2
M [ASP] Upload file da form controllo Classic ASP 5
P [PHP] Controllo al checkbox privacy PHP 6
S [MySQL] Controllo dati di una tabella in tempo reale MySQL 0
T [php] controllo su estensione file PHP 7
M [PHP] Script per controllo disponibilitá negozio in citta PHP 4
I Recupero accesso pannello di controllo dominio Leggi, Normative e Fisco 2
F Controllo dati sui campi di input tramite php PHP 1
R [MS Access] CONDIZIONE CHE CAMBIA PROPRIETA' DI UNA CONTROLLO MS Access 7
M [PHP] Dubbio controllo IF PHP 15
M [PHP] Controllo campo cap con trattino oltre ai numeri PHP 3
Fede72 Controllo registrazioni PHP Mysql PHP 5
L jquery e json controllo valori da determinate chiavi - keys jQuery 0
T [Javascript] un controllo con checkbox che non... controlla... Javascript 3
bubino8 [PHP] Controllo Log e Modifiche Utenti PHP 5
P [PHP] Realizzare un controllo accessi cantiere, problema lettore Qrcode... PHP 0
M [PHP] Controllo inserimento in tempo reale PHP 0
M [PHP] Help: controllo valori inseriti in un campo PHP 1
M [PHP] Impedire di digitare determinati caratteri nell’input (controllo in tempo reale) PHP 4
giancadeejay [PHP] Controllo inserimento tot caratteri PHP 5
giancadeejay [PHP] Controllo su quantita' di caratteri inseriti, in colonna db PHP 5
F [Javascript] Controllo stringa jquery Javascript 4
B [MySQL] CONTROLLO SE CAMPO1 > CAMPO2 MySQL 0
CristianB72 [PHP] Controllo sintassi indirizzo email non funziona PHP 13
M [PHP] controllo inserimento dati un un form PHP 4
ANDREA20 [PHP] Controllo email se e valida PHP 5
elpirata [Javascript] Controllo su campo ricerca data Javascript 1
P scavalca il controllo dello username PHP 1
A problema controllo Javascript 2
C controllo con metodo text non funzionante Javascript 7
P Controllo valori duplicati in un campo a Maschere continue MS Access 0

Discussioni simili