non ti preoccupare ci siamo passati tutti
l'IF valuta una condizione, e se questa è vera, esegue il codice sottostante, ALTRIMENTI (ed ecco che entra l'ELSE) esegue dell'altro codice.
Puoi usare l'else in combinazione con l'if per valutare una nuova condizione e proseguire di nuovo...
correggi il tuo codice in questo modo:
If Len(Request.Form("commenti")) = 0 then
manca_testo()
elseif Len(Request.Form("nome")) = 0 then
manca_nome()
elseif Len(Request.Form("email")) = 0 then
manca_mail()
else
manda_posta(form)
ok_grazie(nome)
end if
questo codice si traduce nel linguaggio naturale:
manca il testo? no, allora manca il nome? no, allora manca l'email? no, invia la posta.
Se anche solo una di queste tre risposte è si, l'email non viene mandata.
Dicevi di voler controllare anche se nel campo email si trova la chiocciola. Bene, puoi inserire più condizioni in un if, l'importante è che siano legate tra loro da un operatore logico: AND oppure OR.
A seconda che usi l'uno o l'altro hai questi risultati:
vero AND vero = vero
vero AND falso = falso
falso AND falso = falso
falso AND vero = falso
Mentre con l'or si verifica in contrario:
vero OR vero = vero
vero OR falso = vero
falso OR vero = vero
falso OR falso = falso
Nel tuo caso la funzione manca_mail() verrà eseguita se il campo email è vuoto O se non c'è la chiocciola, quindi usiamo l'OR.
elseif Len(Request.Form("email")) = 0 OR Instr(Request.Form("email"),"@") = 0 then
La funzione instr() accetta nel caso più comune due parametri: il secondo è la stringa da cercare all'interno della stringa messa come primo parametro. Se la chiocciola non viene trovata, ti da come risultato 0, altrimenti ti restiuisce la posizione della chiocciola all'interno della stringa grande:
Instr("email@dominio.it","@")
ti da come risultato 5, perchè la chiocciola si trova al 5° posto.
Esiste una variante di questa funzione, InstrRev, che comincia a cercare da destra. Nell'esempio precedente non avrebbe fatto differenza perchè cercando da destra o da sinistra, la chiocciola sempre il 5° posto occupa, mentre in questo caso:
Instr("http://dominio.it/","/")
qui ho come risultato 6,
InstrRev("http://dominio.it/","/")
qui ho come risultato 18, perchè cercando da destra incontro per primo l'ultima barra.
Tutto bene?
Modificato da BrightSoul il 29 novembre 2002 22.02 -