>> Torna all'Homepage <<
Contattaci Entra nei forum Cerca nel sito
News della settimana ASP: esempi di pagine dinamiche Trucchi e suggerimenti per il PC Manuali e guide I dossier e gli approfondimenti di AmicoPc Il sito della settimana I racconti di Armando Staffa Chi siamo
     
 

 

Scarica i file
Scarica i file
citati in questa pagina

 


VERIFICA DI UN MODULO

Nella sezione precedente abbiamo accennato alla possibilità di verificare la corretta compilazione di un modulo grazie all’utilizzo della funzione ‘if... then... end if’.
Vediamo di approfondirne l’analisi.

Faremo uso di tre file: modulo.htm, controlla.asp, attenzione.asp

MODULO.HTM
Possiamo tranquillamente riutilizzare il file ‘aggiungi.htm’ creato precedentemente.
L’unica modifica sta nel sostituire ‘aggiorna.asp’ con ‘controlla.asp’. Fatto questo salviamolo col nome ‘modulo.htm’.
Il codice quindi è il seguente:

<html>
<body>
<form method="POST" action="controlla.asp">
<p>Link<br>
<input type="text" name="form_link" size="20"></p>
<p>Descrizione<br>
<textarea rows="2" name="form_descrizione" cols="20"></textarea></p>
<p><input type="submit" value="Invia" name="B1"><input type="reset" value="Reimposta" name="B2"></p>
</form></body>
</html>

CONTROLLA.ASP
Questo file server per verificare il modulo appena compilato.
Innanzitutto preleviamo i dati dal modulo stesso

<%
Dim link1
link1 = request.form("form_link")
Dim descrizione1
descrizione1 = request.form("form_descrizione")

In questo modo abbiamo due variabili in cui sono memorizzati i dati inseriti al momento della compilazione dle form stesso.

A questo punto, mediante la funzione ‘if... then... end if’ possiamo verificarne la validità.

Nel caso in cui tali valori on corrispondano a determinati criteri carichiamo la pagina ‘attenzione.asp’ passandole il parametro ‘error’ con un valore che varia in base all’errore riscontrato.

if link1 = "" then
response.redirect("attenzione.asp?error=1")
end if
if link1 = "prova" then
response.redirect("attenzione.asp?error=2")
end if
if descrizione1 = "" then
response.redirect("attenzione.asp?error=3")
end if
if descrizione1 = "prova" then
response.redirect("attenzione.asp?error=4")
end if

Pertanto se la variabile link1 è vuota (= “”) e quindi il primo campo del modulo non è stato compilato, verrò reindirizzato sulla pagina ‘attenzione.asp’ passandole il parametro ‘error=1’
Viceversa se in quel campo è stata inserita la parola ‘prova’ il parametro passato alla pagina sarà il numero 2.
Così per la variabile descrizione e il relativo campo del modulo.

Nel caso in cui nessuna di queste ipotesi si sia avverata possiamo continuare nell’esecuzione della nostra pagina, per esempio aggiungendo i valori appena ottenuti ad un database come abbiamo fatto prima, oppure visualizzando a schermo i dati inseriti nel modulo.
In quest’ultimo caso avremo

response.write(link1) %><br>
<%
response.write(descrizione1)
%>

Vale solo la pena notare come il tag <br> relativo all’interruzione di riga sia al di fuori dei simboli <% %> che, come già detto, delimitano il codice ASP. Infatti è un elemento html che nulla ha a che fare con l’ASP.
Se l’avessimo lasciato all’interno dei ‘marcatori’ <% %> avremmo ottenuto, come unico risultato, un messaggio di errore.

Vediamo ora la struttura del file
ATTENZIONE.ASP
Abbiamo visto che, nel verificarsi di alcune ipotesi (campi vuoti o con la sola parola ‘prova’), l’utente viene reindirizzato su questa pagina.
La prima cosa da fare è prendere il valore del parametro ‘error’ che ci viene passato dal file ‘controlla.asp’, quindi scriveremo

<%
Dim error1
error1 = request.querystring("error")

A questo punto, sempre utilizzando la funzione ‘if... then... end if’ avremo diversi esiti in base ai codici di errore.

if error1 = "1" then
response.write("Attenzione! Non hai compilato il campo LINK!")
end if

if error1 = "2" then
response.write("Non fare lo spiritoso: la parola PROVA non è certo un link!")
end if

if error1 = "3" then
response.write("Attenzione! Non hai compilato il campo DESCRIZIONE!")
end if

if error1 = "4" then
response.write("Stai scherzando? La parola PROVA non è una descrizione valida!")
end if
%>
<a href="modulo.htm">Torna indietro</a> e compila i campi mancanti.

Come potete vedere in base alla tipologia di errore avremo diversi messaggi di errore.
Naturalmente il testo può essere modificato a piacere, personalizzandone, per esempio, il carattere, la dimensione o la posizione. Se per esempio vogliamo che il testo sia visualizzato con font ‘verdana’, carattere 10, con la parola ‘Attenzione!’ in grassetto e il resto sulla seconda riga, dovremo scrivere

response.write(“<font face=‘Verdana’ size=‘2’> <b>Attenzione!</b> <br>Non hai compilato il campo LINK!</font>“)

Come si può vedere le virgolette doppie normalmente usate per ‘font face’ e per ‘size’ sono state sostituite dall’apice (o apostrofo o virgoletta singola): infatti la stringa che deve essere visualizzata è compresa fra le virgolette doppie. Per evitare quindi problemi (e messaggi di errore) occorre che non ci siano altre virgolette doppie all’interno della stringa stessa.

L'ultima parte di codice che abbiamo visto si compone di quattro if... then... per verificare determinate condizioni associate alla variabile error. In questo caso il metodo utilizzato (if... then... appunto) svolge egregiamente il proprio compito.
Immaginiamo però che il numero degli errori sia maggiore: se abbiamo predisposto il codice per inviare venti messaggi di errore diversi, dovremmo utilizzare if... then...end if per venti volte.
Non esiste altro metodo?
Sì, possiamo utilizzare Select Case la cui struttura è

Select case variabile

case 1
codice uno

case 2
codice due

case 3
codice tre

...

end select

In baso al valore assunto dalla mia variabile, eseguirò di volta in volta, il codice specificato nel caso corrispondente.
Quindi se la variabile ha valore '1', verrà eseguito il 'codice uno'; se ha valore '2' verrà eseguito il 'codice due' e così via.

Pertanto potremmo modificare la visualizzazione dei messaggi di errore così come segue:

Select case error1

Case "1"
response.write("Attenzione! Non hai compilato il campo LINK!")

Case "2"
response.write("Non fare lo spiritoso: la parola PROVA non è certo un link!")

Case "3"
response.write("Attenzione! Non hai compilato il campo DESCRIZIONE!")

Case "4"
response.write("Stai scherzando? La parola PROVA non è una descrizione valida!")

End select

Rispetto al codice analizzato il risultato non cambia: si ha però una maggior chiarezza di codice in quanto tutte le possibilità sono riportate una sotto l'altra, senza ricorrere a numerosi if... then...
In questo modo è più facile organizzare gli eventi da associare ai valori della variabili minimizzando il rischio di possibili errori.

 

Trucchi&Segreti per conoscere meglio il tuo PC.

Utenti connessi: 49

Invia questa pagina ad un amico

 

 

 

Chi siamo | Pubblicità | Note sulla privacy | Dicono di noi
Grafica cura di Paolo Omero
- Stefania Migliorucci

La riviera delle azalee