27 messaggi dal 07 ottobre 2005
Ciao, ho una domanda da porvi.
Ho 3 pagine ASP dove faccio una selezione nella prima, compilo dati nella seconda, invio al DB (SQL 2000) i dati ed una mail di avviso nella terza.

Devo controllare che nella prima sia fatta una selezione e quindi:

nella 2nda pagina metto....
<% if Request.Form("miavariabile")="" then
Response.Redirect("miapagina1.asp?error=1")
End if %>
Dove ad error=1 imposto una frase di avviso ed annullo l'operazione.

Poi devo controllare che nella 2nda pagina sia compilati tutti i dati e che siano numerici tranne 2, quindi:

nella 3za pagina metto....
<% if Request.Form("campo1")="" or Request.Form("campo2")="" or..... then
Response.Redirect("miapagina2.asp?error=2")
End if %>
Controllo valori numerici
<% If not IsNumeric(campo1) or not IsNumeric (campo2) or ....... then
End if%>

Problemi.
L'istruzione sopra mi dà errore "Previsto Then" alla fine della riga.....non lo vede?
Se nella 2nda non compilo i dati mi reindirizza alla prima con l'errore della 2nda, ma io non voglio che vada all'inizio, deve fermarsi alla 2nda pagina.
Come posso fare?
Grazie.
27 messaggi dal 07 ottobre 2005
ERRATA CORRIGE:

nella 3za pagina metto....
<% if not IsNumeric(Request.Form("campo1")) or not IsNumeric(Request.Form("campo2")) or..... then
Response.Redirect("miapagina2.asp?error=2")
End if %>

Controllo valori numerici
<% If not IsNumeric(campo1) or not IsNumeric (campo2) or ....... then
End if%>

Non serve + il controllo dei campi vuoti visto che già "forzo" il controllo che siano numerici
19 messaggi dal 23 settembre 2005
Ciao,
a cosa servono quei puntini prima del then? Forse per dire che ci sono altri campi?

Invece di scrivere un IF lunghissima potresti fare così:

dim Campo

'controlla tutti i campi del form, uno alla volta
for each Campo in Request.Form
if Len(Campo) = 0 OR Campo = "" then
Response.Redirect("miapagina2.asp?error=2")
end if

if Not IsNumeric(Campo) then 'OKKIO perchè controlla TUTTI i campi
'Quali azioni intraprendere nel caso i campi nn siano numerici
end if
next

Non ho capito però in quale riga ti da l'errore "Previsto Then".
27 messaggi dal 07 ottobre 2005
Grazie per la risposta.

Innanzitutto chiedo scusa poichè l'errore era dovuto ad un 'OR' mancante, quindi si aspettava un 'THEN' in mezzo alla dichiarazione.

Pensavo anchio di ottimizzare con un metodo simile al tuo, ma purtroppo su 22 campi, 2 non devono avere questo controllo, sono indirizzi email che controllo con un altro metodo.
Se gli passo il 'FOR EACH' mi prende TUTTI i controlli e non deve farlo poichè richiamo una FUNCTION per analizzare sintatticamente i 2 campi mail.

Quindi, come potrei fare per ottimizzare?
Aggiungo che credo funzioni, stò aspettando la mail che mi dovrebbe spedire la pagina....

i puntini prima dei then sono la presenza di altri campi, sì era per non scrivere tutta la frase
19 messaggi dal 23 settembre 2005
Potresti verificare che i campi che controlli non siano quelli email.

Riscrivo il codice con le parti nuove in MAIUSCOLO (se lo usi ricordati di mettere in minuscolo quello che va minuscolo). Ho supposto che i 2 campi email si chiamino "email_1" e "email_2".

dim Campo

'controlla tutti i campi del form, uno alla volta
for each Campo in Request.Form
if Len(REQUEST.FORM(Campo)) = 0 OR REQUEST.FORM(Campo) = "" then
Response.Redirect("miapagina2.asp?error=2")
end if

IF INSTR(CAMPO, "EMAIL_1") = 0 OR INSTR(CAMPO, "EMAIL_2") = 0 THEN 'Con questo escludi i due campi email dal controllo IsNumeric

if Not IsNumeric(REQUEST.FORM(Campo) then 'ORA CONTROLLA TUTTI I CAMPI TRANNE I DUE EMAIL
'Quali azioni intraprendere nel caso i campi nn siano numerici
end if

ELSE

'Azioni da intraprendere sui campi EMAIL

END IF
next
27 messaggi dal 07 ottobre 2005
CAVOLO avevo fiutato l'utilizzo del FOR EACH XXX in Request.Form.
Ma credevo che il Request senza valori non si potesse utilizzare.....
Allora se si può il problema dovrebbe essere risolto!!!!!
Mo provo....
27 messaggi dal 07 ottobre 2005
Ora mi dà un errore nella function del controllo sintassi email....

errore di sintassi?????
alla riga iniziale:

function (indirizzo)

ma che cavolo di errore è????? Ma se prima funzionava!!!!
19 messaggi dal 23 settembre 2005
su questo non posso esserti molto di aiuto xchè nn so cosa ci sia nella tua funzione.

Cmq prova a verificare se gli stai passando il VALORE del campo (che è Request.Form(Campo)) oppure, erroneamente, il NOME del campo (cioè la variabile Campo stessa).

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.