9 messaggi dal 09 agosto 2001
Sto impazzendo , ..............

Ho un pannello per inviare e-mail , ma per qualche oscuro motivo (almeno per me )non funge , l'ho provato senza fare alcun controllo sulle e mail e funge , quando poi ho inserito il codice per controllare il formato delle e-mail e il dominio , la pagina di esecuzione dello script va in time out , ho controllato e ricontrollato la pagina ma non ho trovato errori , non capisco , sembra che entri nel ciclo di controllo e poi ci rimanga ..............

Se qualcuno puo darni una mano a risolvere la cosa ne sarei molto lieto .........

Il codice è il seguente ................


<script language=vbscript runat=server>

'server.ScriptTimeout = 220

function controlla (valori)


dim i
dim str
dim verifica
dim numerovirgole
dim numerochiocciole


str = cstr(valori)


if str = "" then

controlla = false

exit function
end if

while i <> 1

verifica = instr(1, str, ",")

if verifica = 0 then

i = 1

else

numerovirgole = numerovirgole + 1

end if
wend

i = 0
verifica = 0

while i <> 1

verifica = instr(1, str, "@")

if verifica = 0 then

i = 1

else

numerochiocciole = numerochiocciole + 1

end if

wend



' controlla che ci sia una chiocciola in piu delle virgole

if numerovirgole = numerochiocciole - 1 then


strtemp = str & ","
i = 0
ultimavirgola = 0
virgolasuccessiva = 0


while i <> 1

emailsingola = trim(mid(strtemp, ultimavirgola + 1, virgolasuccessiva - ultimavirgola - 1))

ultimavirgola = virgolasuccessiva


if instr(1, emailsingola, ".com", 1) <> 0 then

controlla = true

elseif instr(1, emailsingola, ".net", 1) <> 0 then

controlla = true

elseif instr(1, emailsingola, ".it", 1) <> 0 then

controlla = true

elseif instr(1, emailsingola, ".org", 1) <> 0 then

controlla = true

else

controlla = false
exit function
end if

wend

else
controlla = false

end if

end function


dim ml
dim ok
dim k

for each k in Request.Form

select case k

case "from" :

ok = controlla(Request.Form(k))

case "to" :

ok = controlla(Request.Form(k))

case "copy" :

if Request.Form(k) <> "" then

ok = controlla(Request.Form(k))

end if

case "subject" :


case "body" :

if Request.Form(k) = "" then ok = false


end select

if not ok then

exit for
end if

next


if ok = true then

set ml = createobject("CDONTS.newmail")

ml.from = Request.Form("from")
ml.To = Request.Form ("to")
ml.Subject = Request.Form ("subject")
ml.Body = Request.Form ("body")
ml.Cc = Request.Form("copy")
ml.Send

set ml = nothing

end if

</script>

GRAZIE ANTICIPATAMENTE

117 messaggi dal 03 settembre 2001
Secondo me se la tua variabile str contiene una virgola, il controllo va nel ramo else, incrementa il numero di virgole ricomincia e poi ritrova la stessa virgola di prima e rimane li dentro, penso che la funzione instr trovi la prima virgola che incontra ma poi non avanza.

Spero di essere stato chiaro
Ciao Chicco
9 messaggi dal 09 agosto 2001
Si forse hai ragione , pero il problema e che se io non inserisco nessuna virgola quando entro nel ciclo , la funz instr non dovrebbe rilevare alcuna virgola e a quel punto incrementare la variabile in modo da farmi uscire dal ciclo , ma questo non accade , ...................


per il controllo delle virgole e chiocciole vedro di aggiustarlo in qualche modo e solo che non riesco a capire come mai non esce dal ciclo quando non trova alcuna virgola ..........


comunque grazie sei stato chiarissimo ,.............

suggerimenti ............??????

117 messaggi dal 03 settembre 2001
prova con questa istruzione

instr(str,",")

dovrebbe andare

Ciao Chicco

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.