Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Codice fiscale

  1. #1

    Codice fiscale

    Salve ragazzi,
    sto creando un sito di prenotazioni online, e per l'autenticazione del cliente ho bisogno di uno script (possibilmente in vbscript) per verificare che il codice fiscale inserito sia corrispondente ai dati personali immessi.
    So che questa domanda è stata postata più volte, ma nelle risposte del forum non c'è ne nessuna che mi aiuti afare questo controllo, ma ci sono solo delle funzioni che verificano solo se la cifra di controllo del codice è corretta.

    Spero che qualcuno mi possa aiutare perchè non so più cosa fare.

  2. #2

  3. #3
    Ti ringrazio per la tua risposta, ma i siti da te indicati non fanno altro che proporre uno script che verifica la correttezza del codice fiscale sulla base del carattere di controllo (ultima lettera del codice fiscale).
    Invece a me servirebbe uno script che effettui la verifica della correttezza del codice fiscale inserito sulla base dei dati personali inseriti.

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    E' piu' facile che tu trovi la funzione completa nei forum che trattano scripting lato server... dato che e' necessario disporre del database dei codici dei comuni per effettuare il controllo, con javascript si potrebbe implementare il controllo degli altri dati ma sarebbe un programma monco... forse e' per questo che non e' facilmente reperibile.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ok, vi posto il programma monco

    codice:
    
    <script>
    // --------------------------------------------------
    // by br1 - 20 dic 2003
    // note: sono esclusi tutti i controlli sulla presenza 
    // e validita' dei parametri passati
    
    // --------------------------------------------------
    function CalcoloCodFis(Cognome, Nome, DataNascita, Sesso, CodiceComune) {
    
    	Cognome = Cognome.toUpperCase()
    	Nome = Nome.toUpperCase()
    
    	ggmmaa = DataNascita.split("/")
    
    	Sesso = Sesso.toUpperCase()
    	CodiceComune = CodiceComune.toUpperCase()
    
    //	qui costruisco il codice
    	TxtCodFis = ""
        
    //	RICAVO IL COGNOME (1-3)
    	Vocali = ""
    	Consonanti = ""
    	for(var i=0; i<Cognome.length; i++) {
    		a = Cognome.charAt(i)
    		if (/[AEIOU]/.test(a)) Vocali += a
    		if (/[BCDFGHJKLMNPQRSTVWXYZ]/.test(a)) Consonanti += a
    	}
    	Consonanti = (Consonanti+Vocali+"XXX").substr(0,3)
    	TxtCodFis = Consonanti
        
    //	RICAVO IL NOME (4-6)
    	Vocali = ""
    	Consonanti = ""
    	for(var i=0; i<Nome.length; i++) {
    		a = Nome.charAt(i)
    		if (/[AEIOU]/.test(a)) Vocali += a
    		if (/[BCDFGHJKLMNPQRSTVWXYZ]/.test(a)) Consonanti += a
    	}
    	if (Consonanti.length>3) {
    //	isolo la prima, terza e quarta consonante
    		Consonanti = Consonanti.charAt(0)+Consonanti.substr(2,2)
    	} else {
    		Consonanti = (Consonanti+Vocali+"XXX").substr(0,3)
    	}
    	TxtCodFis += Consonanti
        
    //	Anno di nascita (7-8)
    	aa = String(10000+parseFloat(ggmmaa[2])).substr(3)
    	TxtCodFis += aa
        
    //	Mese di nascita (9)
    	TxtCodFis += (" ABCDEHLMPRST").charAt(ggmmaa[1])
        
    //	Giorno di nascita e sesso (10-11)
    	Sesso = (Sesso=="F")?140:100;
    	gg = String(parseFloat(ggmmaa[0]) + Sesso).substr(1)
    	TxtCodFis += gg
        
    //	Codice Località di nascita (12-15)
    	TxtCodFis += CodiceComune
        
    //	Codice di Controllo: Ultima lettera (16)
    	TxtCodFis += getCtrlChar(TxtCodFis)
    
    //	finito!
    	return (TxtCodFis)
    
    }
    
    // --------------------------------------------------
    function getCtrlChar(cfp) { // questa non l'ho fatta io
    	var sump = 0; 
    	var sumd = 0; 
    	var car = new Array(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 (var j=1;j<=13;j+=2) sump += cfp.charCodeAt(j) 
    	sump-=404; 
    	for (j=0;j<=4;j+=2) sumd += car[cfp.charCodeAt(j)-65]; 
    	sumd += car[cfp.charCodeAt(6)-48] + car[cfp.charCodeAt(8)-65] + 
    		car[cfp.charCodeAt(10)-48] + car[cfp.charCodeAt(12)-48] + 
    		car[cfp.charCodeAt(14)-48]; 
    	return (String.fromCharCode((sump+sumd)%26+65)); 
    }
    
    // --------------------------------------------------
    // esempio:
    alert(CalcoloCodFis("Buon","Natale","25/12/2003","M","H501"))
    </script>
    
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    GRAZIE!!!!!
    Lo provo subito e ti faccio sapere!!!!!

    Inoltre all'indirizzo: http://www.vlcsoftware.it/downloads/...vlccomuni.aspx
    ho trovato un database con i codici dei comuni, forse può essere utile per completarlo.

  7. #7
    Il tuo codice funziona correttamente, e quindi ti ringrazio.
    Poichè però a me serviva in vbscript, perchè il progetto che devo fare è col vbscript, allora ho provato a modificarlo in vbscript.
    Il risultato ottenuto che attacco di seguito però non funziona:

    codice:
    <script language="Vbscript">
    ' --------------------------------------------------
    ' by br1 - 20 dic 2003
    ' note: sono esclusi tutti i controlli sulla presenza 
    ' e validita' dei parametri passati
    ' modificato da capitanonemo78 - 21 dic 2003
    ' --------------------------------------------------
    Function CalcoloCodFis(Cognome, Nome, DataNascita, Sesso, CodiceComune) 
    
    	Cognome = UCase(Cognome)
    	Nome = UCase(Nome)
    
    	'ggmmaa = Split(DataNascita, /,)
    
    	Sesso = UCase(Sesso)
    	CodiceComune = UCase(CodiceComune)
    
    '	qui costruisco il codice
    	TxtCodFis = ""
        
    '	RICAVO IL COGNOME (1-3)
    	Vocali = ""
    	Consonanti = ""
    	for i=1 to i<len(Cognome) Step 1 
    		a = Mid(Cognome, i, 1)
    		If a="A" OR a="E" OR a="I" OR a="O" OR a="U" Then
               Vocali = Vocali & a
           End If
    	   If a="B" OR a="C" OR a="D" OR a="E" OR a="F" OR a="G" OR a="H" OR a="J" OR a="K" OR a="L" OR a="M" OR a="N" OR a="P" OR a="Q" OR a="R" OR a="S" OR a="T" OR a="V" OR a="Z" Then
              Consonanti = Consonanti & a
           End If
    	Next
       
       Consonanti = Mid(Consonanti & Vocali & "XXX", 1, 3)
    	TxtCodFis = Consonanti
        
    '	RICAVO IL NOME (4-6)
    	Vocali = ""
    	Consonanti = ""
    	for i=1 to i<len(Nome) Step 1 
    		a = Mid(Nome, i, 1)
    		If a="A" OR a="E" OR a="I" OR a="O" OR a="U" Then
               Vocali = Vocali & a
           End If
    	   If a="B" OR a="C" OR a="D" OR a="E" OR a="F" OR a="G" OR a="H" OR a="J" OR a="K" OR a="L" OR a="M" OR a="N" OR a="P" OR a="Q" OR a="R" OR a="S" OR a="T" OR a="V" OR a="Z" Then
              Consonanti = Consonanti & a
           End If
    	Next
    	Consonanti = Mid(Consonanti & Vocali & "XXX", 1, 3)
    	TxtCodFis = Consonanti
    
    	
    	If len(Consonanti)>3 Then
    '	isolo la prima, terza e quarta consonante
    		Consonanti = Mid(Consonanti, 0, 1) & Mid(Consonanti, 2, 2)
       Else 
    		Consonanti = Mid(Consonanti & Vocali & "XXX", 1, 3)
    	End If
    	TxtCodFis = TxtCodFis &  Consonanti
        
    '	Anno di nascita (7-8)
    	aa = Mid(year(DataNascita), 2, 2)
    	TxtCodFis = TxtCodFis + aa
        
    '	Mese di nascita (9)
        mm= month(DataNascita)
        If mm=01 Then
           m="A"
        End If
        If mm=02 Then
           m="B"
        End If
        If mm=03 Then
           m="C"
        End If
        If mm=04 Then
           m="D"
        End If
        If mm=05 Then
           m="E"
        End If
        If mm=06 Then
           m="H"
        End If
        If mm=07 Then
           m="L"
        End If
        If mm=08 Then
           m=M
        End If
        If mm=09 Then
           m=P
        End If
        If mm=10 Then
           m=R
        End If
        If mm=11 Then
           m=S
        End If
        If mm=12 Then
           m=T
        End If
    
    
    	TxtCodFis = TxtCodFis & m
        
    '	Giorno di nascita e sesso (10-11)
    	If Sesso="M" Then
           gg=day(DateNascita) 
       End If
       If Sesso="F" Then
          gg=day(DateNascita)+40
          TxtCodFis = TxtCodFis & gg
       End If
    
    '	Codice Località di nascita (12-15)
    	TxtCodFis = TxtCodFis & CodiceComune
        
    '	Codice di Controllo: Ultima lettera (16)
    	TxtCodFis = TxtCodFis & ControCodice(TxtCodFis)
    
    '	finito!
    
    End Function
    
    ' --------------------------------------------------
    Function ControCodice(TxtCodFis)
    	dim TempNum, i, AppoNum
    	'Controllo caratteri pari
        TempNum = 0
        i = 1
        Do
            ' POSIZIONI DISPARI
            AppoNum = InStr("B1A0K.P.L.C2Q.D3R.E4V.O.S.F5T.G6U.H7M.I8N.J9W.Z.Y.X.", Mid(TxtCodFis, i, 1))
            TempNum = TempNum + Int((AppoNum - 1) / 2)
            i = i + 1
            If i > 15 Then Exit Do
        
            ' POSIZIONI PARI
            AppoNum = InStr("A0B1C2D3E4F5G6H7I8J9K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.", Mid(TxtCodFis, i, 1))
            TempNum = TempNum + Int((AppoNum - 1) / 2)
            i = i + 1
        Loop
        ControCodice = Chr((TempNum Mod 26) + 65)
    End Function
    ' --------------------------------------------------
    ' esempio:
    
    
    alert(CalcoloCodFis("Buon","Natale","25/12/2003","M","H501"))
    </script>
    Potresti aiutarmi a capire quali errori ho fatto???

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ci ho messo un po' di tempo a tradurlo dal vbscript al javascript... domani ti posto l'originale (se l'avessi detto prima...)

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  9. #9
    Sei un grande!!!!!!!
    Allora aspetto che posti il codice originale in vbscript!

    Comunque nel mio primo post avevo parlato di vbscript.

  10. #10
    UP!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.