Validare un form con ASP in modo usabile
Pagina 1 di 2
Le modalità di validazione dei dati inseriti in un form sono veramente tante e quale sia la migliore è davvero opinabile, tuttavia ci sono alcuni aspetti che vanno presi in considerazione.
In primo luogo è buona norma non limitarsi ad un controllo lato client ma "approfondire" la verifica lato server onde evitare aggiramenti dei controlli da parte di utenti scorretti con una certa dimestichezza con l'HTML.
In secondo luogo è importante che un form sia usabile e di immediata comprensione per gli utenti in caso di errori di compilazione.
Più di una volta, purtroppo, mi è capitato di imbattermi in moduli dai risultati "arcani" del tipo: "Hai commesso un errore ed il form non è stato spedito!"... peccato che il form in questione (non faccio il nome del sito per pura bontà d'animo) ha circa una ventina di campi e non mi è stata fornita alcuna indicazione circa l'errore compiuto (rivedendo tutti i dati mi sono accorto di aver commesso un errore di battitura nel campo "codice fiscale").
In quest'articolo, pertanto, vedremo un esempio di form il cui fine vuol'essere più pratico che non didattico; in sostanza vorrei dimostrare quanto sia semplice creare un sistema di validazione lato server chiaro e comprensibile per l'utente!
Nello specifico il nostro controllo effettuerà i seguenti step all'atto del submit di informazioni scorrette od incomplete:
- lancerà un messaggio di errore al fianco dei campi non compilati o compilati male;
- i campi compilati correttamente verranno mantenuti (il relaivo campo resta compilato con le informazioni inserite e non sarà necessario scriverle di nuovo);
- in caso di successo nella compilazione i dati verranno processati e si riceverà un chiaro messaggio di conferma.

Tengo a precisare che l'esempio proposto non vuole essere un modello circa la validazione dei dati, ma un esempio di come i processi di controllo possano essere gestiti in modo intelligente aiutando l'utente a comprendere gli errori compiuti e, quindi a correggerli.
Vediamo quindi il file form.asp, corrediamolo colo seguente codice ed eseguiamolo sul nostro server Web personale:
<%@LANGUAGE = VBScript%>
<%
Dim invio, nome, cognome, indirizzo, telefono
invio = Request.Form("invio")
nome = Request.Form("nome")
cognome = Request.Form("cognome")
indirizzo = Request.Form("indirizzo")
telefono = Request.Form("telefono")
Dim messaggio, errore
errore = 0
messaggio = "<span style=""color: #FF0000;"">Campo obbligatorio!</span>"
%>
<html>
<head>
<title>Controllo integrato in un form con ASP ed i cookies</title>
<style type="text/css">
p, input
{
font: normal 12px verdana;
}
input
{
width: 250px;
}
</style>
</head>
<body>
<form method="post" action="form.asp">
<p>
Nome
<%
If invio <> "" And nome = "" Then
Response.Write messaggio
errore = errore + 1
End If
%>
<br><input type="text" name="nome" value="<%=nome%>">
</p>
<p>
Cognome
<%
If invio <> "" And cognome = "" Then
Response.Write messaggio
errore = errore + 1
End If
%>
<br><input type="text" name="cognome" value="<%=cognome%>">
</p>
<p>
Indirizzo
<%
If invio <> "" And indirizzo = "" Then
Response.Write messaggio
errore = errore + 1
End If
%>
<br><input type="text" name="indirizzo" value="<%=indirizzo%>">
</p>
<p>
Telefono
<%
If invio <> "" And telefono = "" Then
Response.Write messaggio
errore = errore + 1
End If
%>
<br><input type="text" name="telefono" value="<%=telefono%>">
</p>
<p><input type="submit" name="invio" value="Invio"></p>
</form>
<%
If invio <> "" And errore = 0 Then
With Response
.Write "<p>E' solo un esempio!</p>"
.Write "<p>"
.Write "Nome: " & nome & "<br>"
.Write "Cognome: " & cognome & "<br>"
.Write "Indirizzo: " & indirizzo & "<br>"
.Write "Telefono: " & telefono
.Write "</p>"
End With
End If
%>
</body>
</html>
Esaminiamo ora il funzionamento dell'applicazione in oggetto.







