back to top

Alla scoperta di VBScript: cos’è, come funziona e come iniziare a fare scripting!

Il VBScript è un semplice linguaggio di scripting adoperabile sia lato client che lato server per l’implementazione di pagine ASP; è un linguaggio di casa Microsoft che nasce come semplificazione del noto linguaggio di programmazione Visual Basic.

L’importanza di questo linguaggio si evince proprio dal fatto che, imparandolo, diventa poi molto semplice muoversi all’interno di documenti ASP e risulterà più semplice anche lavorare in Visual Basic, linguaggio molto richiesto in molte aziende informatiche; altra peculiarità del VBScript lato client è che è possibile creare script che interagiscono con i CSS, quindi script DHTML.

VBScript possiede una nutrita schiera di funzioni per la manipolazione delle date e delle stringhe, nonchè moltissime funzioni predefinite che risolvono con semplicità diversi problemi. Il concorrente principale di VBScript, per antonomasia, il il Javascript, linguaggio molto più potente, leggibile e flessibile, ma privo di molte delle funzioni che caratterizzano il VBScript.

La differenza sostanziale tra Javascript e VBScript sta nel fatto che il primo, rispetto al secondo, è un reale linguaggio orientato agli oggetti, quindi risolve molte delle sue problematiche ricorrendo a proprietà e metodi, mentre il VBScript lavora molto con le funzioni predefinite ed è quindi più comodo, anche se, a mio avviso, meno adatto a creare una reale forma mentis di programmazione.

In questa guida impareremo le nozioni base del linguaggio, vedremo tutti gli elementi che lo caratterizzano e la loro sintassi, nonchè le principali funzioni predefinite sulle date, sulle stringhe ed altre ancora.

Il codice VBScript va implementato direttamente all’interno delle pagine HTML in una coppia di Tag che definiscono uno script. Attenzione perchè, nel caso di VBScript, contrariamente al Javascript quindi, la definizione del linguaggio è obbligatoria. Vediamo un esempio in cui lanciamo uno script che stampa a video un messaggio di benvenuto agli utenti:

<html>
    <head>
        <title>Il mio primo codice VBScript</title>
    </head>
<body>

<script language="VBScript">
    <!--
        ' Questo è un commento.
        ' Il codice preceduto da un apice non viene
        ' interpretato dal motore VBScript.

        document.write "Saluti a tutti da VBScript"
    '-->
</script>

</body>
</html>

Stampa a video Saluti a tutti da VBScript.

Buona lettura!

Variabili e costanti

Durante la stesura di un programma è necessario disporre di elementi che temporaneamente conservino dei valori in memoria; questi valori possono subire o meno variazioni nel tempo di esecuzione del programma o allo scatenarsi di una routine differente (per routine si intende parte di un programma).

I valori suscettibili a variazioni, quindi dinamici, prendono il nome di variabili, mentre quello non suscettibili a variazioni, quindi trattasi di valori statici, prendono il nome di costanti.

Al contrario di altri linguaggi, il VBScript possiede un sistema di dichiarazione di una costante, mentre in altri linguaggi, come lo stesso Javascript, il concetto di costante è astratto e viene definita una variabile di sola lettura. Il comando utilizzato per definire una costante è Const. Vediamo un esempio:

<script language="VBScript">
    <!--
        Const x = 10
        Const y = 15
        document.write x + y
    '-->
</script>

Lo script effettua la somma devi valori x e y e stampa a video il risultato, ovvero 25. Se avessi scritto

Const x = "10"
Const y = "15"
document.write x + y

il risultato sarebbe stato 1015, perchè x e y avrebbero avuto valori racchiusi tra virgolette, quindi delle stringhe e non dei numerici effettivi.

Le variabili, invece, utilizzano la parola chiave Dim per la dichiarazione e sono suscettibili a cambiamenti, ad esempio tramite l’immissione di dati in un modulo. Altra differenza, stavolta sintattica, tra Const e Dim è che con Dim non è possibile dichiarare e valorizzare una variabile sulla stessa riga; il codice appena proposto si potrebbe tradurre come segue:

Dim x
Dim y

x = "10"
y = "15"

document.write x + y

oppure dichiarando x e y sulla stessa riga

Dim x, y

x = "10"
y = "15"

document.write x + y

Proviamo a lanciare di nuovo il messaggio di benvenuto agli utenti memorizzandolo in due variabili e vediamo come concatenare due stringhe:

Dim mess_a
Dim mess_b

mess_a = "Saluti a tutti"
mess_b = "da VBScript"

document.write mess_a & " " & mess_b

Per concatenare due variabili si utilizza l’operatore & mentre + effettua una somma. Parleremo degli operatori nel prossimo capitolo. Vedremo anche altri esempi con le variabili e con le costanti negli altri capitoli della guida, facendo esempi più complessi e fornendo interattività all’utente.

Altro sistema per dichiarare una variabile di tipo oggetto (Rif. capitolo 3) è mediante l’utilizzo della parola chiave Set. Un esempio:

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

che crea un’istanza di un oggetto per permettere ad uno script di lavorare con i file di testo.

Una volta utilizzato l’oggetto va svuotato, risettandolo sul valore speciale Nothing

Set fso = Nothing

Ora andiamo avanti…

Operatori, tipi di dato e funzioni di conversione

Un ruolo importante, per ogni linguaggio di programmazione, è rivestito dagli operatori e dai tipi di dato; VBScript mette anche a disposizione una serie di funzioni predefinite che servono ad attuare la conversione di un dato da un tipo all’altro. Queste funzioni prendono il nome di funzioni di conversione.

Andiamo per gradi.

Gli operatori che VBScript mette a disposizione sono di 3 tipi: aritmetici, di confronto e logici. Vediamo gli elenchi completi con relative descrizioni dell’operatore:

Operatori aritmetici

+       Esegue una somma
-       Esegue una sottrazione
*       Esegue una moltiplicazione
/       Esegue una divisione
\       Esegue una divisione intera
^       Elevamento a potenza
=       Restituisce un risultato aritmetico
Mod     Modulo di una divisione
Operatori di confronto

=      Assegnaziode di un valore
<>     Diverso
>      Minore
>      Maggiore
<=     Minore o uguale
>=     Maggiore o uguale
Operatori logici

Not     Negazione
And     Congiunzione Logica
Or      Disgiunzione Logica

Utilizzeremo molti di questi simboli in svariati esempi nel corso dell’intera guida.

I tipi di dato che VBScript mette a disposizione sono i seguenti:

Tipo di dato Descrizione
Boolean Può assumere i valori True o False
Byte Numerico intero compreso in un intervallo che va da 0 a 255
Currency Utilizzato per esprimere valore monetario; va da -922.337.203.685.477,5808 a 922.337.203.685.477,5807
Date Utile per trattare le date; compreso in un intervallo che va dal 1 Gennaio 100 al 31 Dicembre 9999
Double Numerico in virgola mobile a precisione doppia, compreso in un intervallo che va da -1,79769313486232E308 a 1,79769313486232E308
Integer Numerico intero compreso in un intervallo che va da -32.768 a 32.767
Long Numerico intero compreso in un intervallo che va da -2.147.483.648 a 2.147.483.647
Object Può contenere un oggetto, ad esempio di tipo ActiveX
Single Numerico in virgola mobile a precisione singola, compreso in un intervallo che va da -3,402823E38 a 3,402823E38
String Adatto per un valore di tipo stringa testuale di lunghezza variabile, fino ad un massimo di circa 2 miliardi

In funzione di questi tipi di dato esistono una serie di funzioni di conversione per ritipizzare una variabile. Di seguito un elenco:

Funzione Descrizione
Abs Restituisce il valore assoluto di un numero
CByte Converte un tipo in un tipo Byte
CDate Converte un tipo in un tipo Date
CDbl Converte un tipo in un tipo Double
CInt Converte un tipo in un tipo Integer
CLng Converte un tipo in un tipo Long
CSng Converte un tipo in un tipo Single
CStr Converte un tipo in un tipo String
Fix Restituisce la parte fissa di un numero
Hex Restituisce, in formato String, il valore esadecimale di un numero
Int Restituisce la parte intera di un numero
Oct Restituisce, in formato String, il valore ottale di un numero
Round Arrotonda un numero ai decimali specificati
Sgn Restituisce un intero che rappresenta il segno di un numero

Facciamo un esempio di conversione di un tipo di dato da un altro:

<script language="VBScript">
    <!--
        Dim a, b

        a = "10"
        b = "15"

        With document
            .write "Somma tra stringhe: " & a + b
            .write "<br>"
            .write "Somma tra numerici: " & CInt(a) + CInt(b)
        End With
    '-->
</script>

Restituisce

Somma tra stringhe: 1015
Somma tra numerici: 25

Abbiamo anche approfittato per fare la conoscenza dell’istruzione With che permette di specificare un oggetto e di ripetere i metodi o le proprietà di quell’oggetto, e di utilizzarle, senza dover ripetere N volte il nome dell’oggetto. Il suo scopo è quello di risparmiare codice e di renderlo più ordinato e leggibile.

Istruzioni condizionali

Ogni linguaggio di programmazione ha bisogno di una serie di istruzioni di controllo per permettere al programma di muoversi in un modo piuttosto che nell’altro a seconda delle azioni degli utenti (eventi) o a seconda di eventi naturali, come il trascorrere del tempo.

Delle istruzioni di controllo fanno parte le istruzioni condizionali, oggetto di questo capitolo, e le istruzioni di iterazione oggetto del prossimo capitolo.

Controllare il flusso di un programma significa verificare che l’andamento segua o meno una certa condotta. Il computer non riesce a comprendere il linguaggio umano, ma i motori che interpretano i linguaggi di programmazione comprendono una serie di istruzioni, stabilite dall’uomo, che diventano simili al linguaggio umano.

Per controllare il flusso di un programma il VBScript dispone del costrutto If Then Else ovvero Se, Allora, Oppure. Facciamo un esempio:

<strong>Se</strong> domattina mi sveglio presto <strong>Allora</strong>
    vado a correre
<strong>Oppure</strong>
    guardo la televisione.
Fine della condizione

Facciamo un esempio di codice VBScript:

<script language="VBScript">
    <!--
        Dim a
        Dim b

        a = 1
        b = 2

        If a < b Then
            document.write "a è minore di b"
        Else
            document.write "a è maggiore di b"
        End If
    '-->
</script>

Nel nostro esempio a vale 1 e b vale 2, quindi imponendo una condizione in cui chiedo di verificare che a sia minore di b, la risposta è True, quindi a video leggerò a è minore di b.

E’ possibile verificare più condizioni in un costrutto If Then Else, utilizzando la clausola ElseIf (Oppure Se). Vediamo un esempio:

<script language="VBScript">
    <!--
        Dim a, b

        a = 1
        b = 2

        If a < b Then
            document.write "a è minore di b"
        ElseIf a = b Then
            document.write "a è uguale a b"
        Else
            document.write "a è maggiore di b"
        End If
    '-->
</script>

Il risultato non cambia: anche se ho imposto un’altra condizione, chiedendo di verificare se a e b sono uguali, se a vale 1 e b vale 2, a resta minore di b.

VBscript dispone di un altro costrutto per verificare delle condizioni, il Select Case. Vediamo un esempio in cui introduciamo alcune funzioni sulla gestione delle date:

<script language="VBScript">
    <!--
        Dim mese
        mese = Month(Date())

        document.write "Questo è il mese di "

        Select Case mese
            Case 1  : document.write "Gennaio"
            Case 2  : document.write "Febbraio"
            Case 3  : document.write "Marzo"
            Case 4  : document.write "Aprile"
            Case 5  : document.write "Maggio"
            Case 6  : document.write "Giugno"
            Case 7  : document.write "Luglio"
            Case 8  : document.write "Agosto"
            Case 9  : document.write "Settembre"
            Case 10 : document.write "Ottobre"
            Case 11 : document.write "Novembre"
            Case 12 : document.write "Dicembre"
        End Select
    '-->
</script>

Nel momento in cui scrivo è Novembre, quindi il risultato di questo script sarà Questo è il mese di Novembre.

Troveremo le istruzioni condizionali in molti altri esempi, essendo alla base della programmazione in qualsiasi linguaggio.

Istruzioni di iterazione

Iterare un’istruzione vuol dire ripeterla N volte in funzione di un contatore numerico con un inizio ed una fine ben specificati che possono essere statici (impostati dallo sviluppatore) o dinamici (variabili a seconda di eventi o circostanze).

Le funzioni di iterazione vengono chiamate anche cicli ed i principali sono For e While. Facciamo qualche esempio che esplichi il compito di entrambe le istruzioni.

La sintassi di For è la seguente:

For <em>inizio</em> To <em>fine</em>
    <em>' istruzioni da iterare N volte</em>
Next

Vediamo un esempio pratico in cui stampiamo a video una frase N volte, specificando il contatore:

<script language="VBScript">
    <!--
        Dim i
        i = 1

        For i = 1 To 10
            document.write "Frase # " & i & "<br>"
        Next
    '-->
</script>

Restituisce

Frase # 1
Frase # 2
Frase # 3
Frase # 4
Frase # 5
Frase # 6
Frase # 7
Frase # 8
Frase # 9
Frase # 10

Vediamo adesso la sintassi di While:

While <em>condizione</em>
    <em>' istruzioni da iterare N volte
    incremento</em>
Wend

Traducuamo l’esempio precedente con l’utilizzo di While:

<script language="VBScript">
    <!--
        Dim i
        i = 1

        While i <= 10
            document.write "Frase # " & i & "<br>"
            i = i + 1
        Wend
    '-->
</script>

Il risultato è identico al precedente.

Ritroveremo immediatamente For e While nel prossimo capitolo, vedendo come si può eseguire un ciclo su una variabile di tipo Array.

Array

Gli Array sono variabili che lavoramo come matrici per matrice si intende un contenitore di dati a schema tabellare che identifica ogni item con un numerico intero, a partire da zero (0) (o dal valore stabilito) ed arrivano fino ad N.

La sintassi per la dichiarazione di un Array è la seguente:

Dim <em>nome_variabile</em>(<em>dimensione_array</em>)

dove dimensione_array è un numerico. Un esempio di Array puù essere redatto con i giorni della settimana come segue:

Dim giorni(7)
    giorni(0) = "Lunedi"
    giorni(1) = "Martedi"
    giorni(2) = "Mercoledi"
    giorni(3) = "Giovedi"
    giorni(4) = "Venerdi"
    giorni(5) = "Sabato"
    giorni(6) = "Domenica"

Possiamo adesso risalire all’item che desideriamo facendo riferimento al suo indice numerico:

document.write giorni(5)
' Restituisce Sabato

oppure possiamo eseguire un ciclo su tutti gli item della matrice:

Dim i
i = 0

For i = 0 To 6
    document.write giorni(i) & "<br>"
Next

oppure, ancora, è possibile calcolare dinamicamente la lunghezza dell’Array con la funzione UBound()

Dim i
i = 0

For i = 0 To UBound(giorni) - 1
    document.write giorni(i) & "<br>"
Next

Provate ad implementare un ciclo su un Array utilizzando il ciclo While.

Funzioni e Sub

Le Funzioni e le Sub sono elementi definiti madre in uno script; all’interno di uno di questi due elementi è possibile definire una routine che si scatenerà al verificarsi di un evento, da parte dell’utente o naturale che sia.

La sintassi per la definizione di una Funzione è la seguente:

Function <em>NomeFunzione()</em>
    <em>Istruzioni</em>
End Function

La sintassi per la definizione di una Sub, invece, è la seguente:

Sub <em>NomeSub()</em>
    <em>Istruzioni</em>
End Sub

Si utilizza l’istruzione Call per chiamare una Funzione o una Sub:

Call NomeFunzione()
Call NomeSub()

La differenza tra Funzioni e Sub è che le prime restituiscono valori mentre le seconde sono solo programmi all’interno di un programma madre.

Facciamo un esempio in cui utilizziamo una Funzione, a cui passiamo dei parametri, che ci restituirà un valore:

<script language="VBScript">
    <!--
        Function CalcoloMatematico(x, y)
            alert "Il nostro risultato è " & CInt(x) + CInt(y)
        End Function

        Call CalcoloMatematico(5, 10)
    '-->
</script>

Il risultato sarà Il nostro risultato è 15 dove 15 è la somma dei valori passati tra patentesi alla Funzione in fase di chiamata, ovvero la sostituzione delle variabili parametriche x e y.

Possiamo impostare la funzione all’evento click su un bottone HTML; vediamo come:

<script language="VBScript">
    <!--
        Function CalcoloMatematico(x, y)
            alert "Il nostro risultato è " & CInt(x) + CInt(y)
        End Function
    '-->
</script>

<input
    type="button"
    value="Risultato"
    onclick="Call CalcoloMatematico(5, 10)">

Ritroveremo le Funzioni nell’ultimo capitolo effettuando la validazione di un modulo HTML lato client con VBScript.

Funzioni per le date

Il VBScript mette a disposizione dello sviluppatore una nutrita schiera di funzioni predefinite per la gestione delle date. Al giorno d’oggi, almeno a mio avviso, rimane il linguaggio che gestisce in maniera più potente e versatile gli elementi data e ora.

Iniziamo con le prime tre funzioni base:

Now()      ' Restituisce: 29/11/2004 23.48.04
Date()     ' Restituisce: 29/11/2004
Time()     ' Restituisce: 23.48.04

In pratica Date() e Time() restituiscono separatamente quello che restituisce Now() in un colpo solo. Provate a stamparle a video.

In base a queste tre funzioni esistono decine di funzioni che restituiscono separatamente i valori:

Giorno - in formato numerico ed alfabetico
Mese   - in formato numerico ed alfabetico
Anno   - in due o in quattro cifre

ed altre funzioni legate ai mesi ed alle settimane. In questo capitolo vedremo le principali.

Ecco le funzioni che permettono la gestione separata della data:

Day()       - Restituisce: 29
Month()     - Restituisce: 11
Year()      - Restituisce: 2004

A queste tre funzioni va associata la funzione Date() come segue:

<script language="VBScript">
    <!--
        With document
            .write "Oggi è il "
            .write Day(Date()) & "/"
            .write Month(Date()) & "/"
            .write Year(Date())
        End With
    '-->
</script>

Stesso discorso per le funzioni per la gestione dei componenti dell’orario:

Hour()       - Restituisce: 23
Minute()     - Restituisce: 48
Second()     - Restituisce: 04

A queste funzioni va associata la funzione Time() come segue:

<script language="VBScript">
    <!--
        With document
            .write "Sono le ore "
            .write Hour(Time()) & ":"
            .write Minute(Time()) & ":"
            .write Second(Time())
        End With
    '-->
</script>

Possiamo tradurre il mese in formato alfabetico e specificare il giorno della settimana. Occhio alla sintassi:

<script language="VBScript">
    <!--
        With document
            .write "Oggi è "
            .write WeekdayName(Weekday(Date())) & " "
            .write Day(Date()) & " "
            .write MonthName(Month(Date())) & " "
            .write Year(Date())
        End With
    '-->
</script>

La gestione delle date in VBScript è un argomento molto complesso. Rimando il lettore ad un Tutorial dedicato nell’apposita sezione del nostro sito.

Funzioni per le stringhe

Una delle grandi potenzialità che il VBScript offre agli sviluppatori è la possibilità di gestire, con estrema facilità, le stringhe, utilizzando comodissime funzioni.

Un elenco delle principali funzioni per le stringhe che VBScript mette a disposizione:

  • Replace() sostituisce un carattere o un set di caratteri all’interno di una stringa
  • Split() divide una stringa in un Array di stringa in base ad un criterio specificato
  • Trim() elimina gli spazi superflui a destra ed a sinistra di una stringa
  • Left() restituisce N caratteri specificati partendo da sinistra
  • Right() restituisce N caratteri specificati partendo da destra
  • Len() restituisce la lunghezza di una stringa

Queste le funzioni principali che permettono di creare diverse applicazioncine e controlli molto utili. Vediamo qualche esempio per tutte:

document.write Replace("VBScript", "VB", "Java")

' Trasforma la stringa VBScript in JavaScript
' sostituendo VB con Java
Dim s
s = Split("Luca Ruggiero", " ")
document.write s(0) & "<br>" & s(1)

' Divide la stringa Luca Ruggiero in un Array
' in funzione del carattere spazio vuoto " ".
' Si fa riferimento all'indice numerico (da 0 a N)
' per richiamare un item.
' Restituisce
' Luca
' Ruggiero
' mandando la stringa a capo
document.write Trim("     Luca Ruggiero       ")

' Restituisce la stringa specificata senza
' spazi superflui sulla sinistra e sulla destra
document.write Left("Ruggiero", 3)

' Restituisce i primi tre caratteri della stringa a
' partire da sinistra, ovvero Rug
document.write Right("Ruggiero", 3)

' Restituisce i primi tre caratteri della stringa a
' partire da destra, ovvero ero
document.write Len("Ruggiero")

' Restituisce la lunghezza della stringa
' in questo caso 8

Riprenderemo le stringhe nell’ultimo capitolo vedendo come validare un modulo HTML lato client con VBScript.

Altre funzioni predefinite

VBScript dispone di una serie di funzioni predefinite per l’implementazione di piccoli script o per gestire al meglio i risultati all’interno di script più complessi.

Le funzioni predefinite più importanti che VBScript mette a disposizione sono quelle per la formattazione automatica di determinati elementi numerici; ecco un elenco:

  • FormatCurrency() – formatta un numero come valuta impostando il simbolo associato alla lingua del computer che esegue lo script (es. € $ £ ecc…)
  • FormatDateTime() – formatta la data in formato numerico o alfanumerico
  • FormatNumber() – formatta un numero separando con un punto le migliaia
  • FormatPercent() – formatta un numero in percentuale

Vediamo un esempio per ognuna delle funzioni elencate:

document.write FormatCurrency(1000, 0)
' Restituisce € 1.000
document.write FormatDateTime(Now(), 1) ' 0 a 4
' Restituisce mercoledi 1 dicembre 2004
document.write FormatNumber(1000, 0)
' Restituisce 1.000
document.write FormatPercent(1, 0)
' Restituisce 100%

Ipotizziamo di voler modificare la valuta in dollari; utilizzeremo la funzione Replace() (Rif. capitolo 9) per sostituire € con $

document.write Replace(FormatCurrency(1000, 0), "€", "$")
' Restituisce $ 1.000

Ipotizziamo poi di voler scrivere la data in formato numerico piuttosto che alfanumerico; FormatDateTime() accetta valori da 0 a 4 come secondo parametro, restituendo rispettivamente

0     - Restituisce: 01/12/2004 14.01.34
1     - Restituisce: mercoledi 1 dicembre 2004
2     - Restituisce: 01/12/2004
3     - Restituisce: 14.02.14
4     - Restituisce: 14.02

In alternativa, per la gestione delle date, esistono le funzioni specifiche viste nel capitolo 8 della guida.

Validazione di un form lato client

La scelta di validare un modulo HTML lato client è dettata dall’esigenza di bloccare l’utente che, per distrazione o per voglia di dare fastidio, inserisce dati sbagliati in un modulo che li invierà ad un database mediante uno script lato server, ad esempio ad una pagina ASP, oppure via email, sempre mediante uno script lato server. Si consiglia sempre e comunque di implementare il controllo anche lato server, per questioni di sicurezza.

Concentriamoci adesso su come inviare un modulo lato client con VBScript. Di seguito il codice HTML del modulo:

<form name="modulo">
    Username:<br>
    <input type="text" name="username">
    <br>
    Password:<br>
    <input type="password" name="password">
    <br>
    Conferma Password:<br>
    <input type="password" name="conferma">
    <br>
    Email:<br>
    <input type="text" name="email">
    <br><br>
    <input type="button" value="OK" onclick="Call Valida()">
</form>

Vediamo adesso il codice per la validazione VBScript commentato:

<script language="VBScript">
<!--

Function Valida()

<strong>' Recupero le variabili dal modulo HTML</strong>
Dim username, password, conferma, email
username = document.modulo.username.value
password = document.modulo.password.value
conferma = document.modulo.conferma.value
email = document.modulo.email.value

<strong>' Espressione regolare per verificare l'indirizzo email</strong>
Dim re, p
Set re = New RegExp
p = ""
p = p & "^[\w\-\.]*[\w\.]\@[\w\.]"
p = p & "*[\w\-\.]+[\w\-]+[\w]\.+[\w]+[\w $]"
re.Pattern = p

<strong>' Verifico il campo Username</strong>
If Len(Trim(username)) = 0 Then
    MsgBox "Inserire la Username", vbCritical, "ERRORE"
    document.modulo.username.value = ""
    document.modulo.username.focus()
    Exit Function
End If

<strong>' Verifico il campo Password</strong>
If Len(Trim(password)) = 0 Then
    MsgBox "Inserire la Password", vbCritical, "ERRORE"
    document.modulo.password.value = ""
    document.modulo.password.focus()
    Exit Function
End If

<strong>' Verifico che il campo Password
' ed il campo Controlla Password
' sianu uguali</strong>
If conferma <> password Then
    MsgBox "Conferma la Password", vbCritical, "ERRORE"
    document.modulo.conferma.value = ""
    document.modulo.conferma.focus()
    Exit Function
End If

<strong>' Verifico che l'email specificata dall'utente
' sia valida e conforme all'espressione regolare</strong>
If re.Test(email) = False Then
    MsgBox "Inserisci un indirizzo email", vbCritical, "ERRORE"
    document.modulo.email.value = ""
    document.modulo.email.focus()
    Exit Function
End If

<em>' document.modulo.method = "POST"
' document.modulo.action = "email.asp"
' document.modulo.submit()</em>

MsgBox "Modulo compilato correttamente", vbOKOnly, "CONFERMA"

End Function

'-->
</script>

Il ragionamento è semplice: controllo che ogni campo sia compilato correttamente in funzione del tipo di dato che richiede e lo faccio utilizzando delle istruzioni condizionali: se la singola condizione non viene soddisfatta lancio un messaggio di errore, svuoto il campo, riposiziono il cursore sul campo ed esco dalla funzione.

Una volta soddisfatte tutte le condizioni, trattandosi di una demo di prova lancio un semplice messaggio che avvisa che il modulo è stato compilato correttamente; il codice VBScript scritto in corsivo nelle ultime righe è commentato: lo scopo di questo codice, una volta privato del commento, è quello di specificare il metodo di invio dei dati, specificare il file ASP (o PHP ad esempio) che invia la mail (ad esempio) ed inviare materialmente il modulo col metodo submit().

Tecnicamente parlando è possibile utilizzare condizioni ElseIf piuttosto che tante If separate con l’Exit Function. Ad esempio:

If Len(Trim(username)) = 0 Then
    MsgBox "Inserire la Username", vbCritical, "ERRORE"
ElseIf Len(Trim(password)) = 0 Then
    MsgBox "Inserire la Password", vbCritical, "ERRORE"
ElseIf ... ... ...
    ... ... ...
Else
    MsgBox "Modulo compilato correttamente", ...
End If

A voi la scelta!

Altri contenuti interessanti

Pubblicità

Leggi anche...

Inviare mail con ASP: esempi pratici di utilizzo di CDONTS e CDOSYS

E' possibile inviare mail attraverso una pagina in Classic...

Aggiungere elementi a un Array in ASP/VBScript

In un precedente articolo abbiamo parlato delle limitazioni di...

Perchè CInt restituisce un errore Overflow?

Utilizzando CInt per la definizione di variabili numeriche può...

Cosa sono chr(10) e chr(13)? E la costante vbCrLf?

All'interno di un codice ASP (o più generalmente, all'interno...

Creare pagine dinamiche con ASP e Database

La potenza di ASP, e di qualsiasi linguaggio di...
Pubblicità