Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374

    Validare un indirizzo email

    Sto provando ad usare questa funzione per controllare la sintassi dell'indirizzo email inserito:
    codice:
    function valida(mail)
    dim posAt
    posAt=0
    dim posPunto
    posPunto=0
    dim arAppo
    arAppo=split(mail,"@")
    dim qtAt
    qtAt=ubound(arAppo)
    
    if (qtAt=1) then
    posAt=inStr(mail,"@")
    posPunto=inStr(posAt+2,mail,".",0)
    if(posPunto<>0)then
    if(posPunto+2+posAt<len(mail)) then
    valida=True
    else
    valida=False
    end if
    else
    valida=False
    end if
    else
    valida=False
    end if
    end function
    che richiamo così se non dovesse essere corretto
    codice:
    dim email="pincopallino@email.it"
    if (valida(email))=false then 
      Response.Redirect("errore.asp?id=3")
    end if
    Non capisco perchè continui a dirmi di inserire l'indirizzo email!!
    "Se la montagna vien da te,
    e tu non sei Maometto,
    allora scappa, potrebbe essere una frana!"

  2. #2
    Fai un bel copia e incolla...
    Se impari a fare i debug, non avrai più problemi...
    codice:
    <% 
    	dim  messaggio
    '### Primo errore:
    '###	dim  email="pincopallino@email.it"
    '### Le variabili non possono essere inizializzate in questo modo.
    
    	const  email = "pincopallino@email.it"
    
    	function  valida(mail)
    		'Posizione del carattere "@" 
    		dim  posAt
    		posAt=0
    
    		'Posizione del carattere "." 
    		dim  posPunto
    		posPunto=0
    
    		'Array contenente Nome e  Dominio.Estensione
     		dim  arAppo
    		arAppo=split (mail,"@")
    'Debug Nome
    Response.Write "Nome" & arAppo(0) & "
    "
    'Debug Dominio.Estensione 
    Response.Write "Nome" & arAppo(1) & "
    "
    
    		'Quantità del carattere "@" 
    		dim  qtAt
    		qtAt = ubound (arAppo)
    'Debug quantità del carattere "@" 
    Response.Write "qtAt: " & qtAt & "
    "
    
    		 if  (qtAt = 1) then 
    			posAt = InStr (mail,"@")
    'Debug posizione del carattere "@" 
    Response.Write "posAt: " & posAt & "
    "
    
    			posPunto = inStr (posAt + 2,mail,".",0)
    'Debug posizione del carattere "." 
    Response.Write "posPunto: " & posPunto & "
    "
    
    			if  (posPunto <> 0) then 
    
    '###		Ecco il tuo secondo (e più grave) errore: 
    '###			if(posPunto+2+posAt<len(mail)) then 
    '###		Perchè mai sommi la posizione del punto, alla posizione dell'AT, alla lunghezza dell'estensione(2 se ".it" altrimenti 3 se ".com")? 
    '###		Ti basta sommare la posizione del punto alla lunghezza dell'estensione 
    
    				if  ((posPunto + 2) <= len(mail) ) then
     					valida = true
    					messaggio = "OK! Posizione punto corretta" & "
    "
    				else 
    					valida = false
    					messaggio = "KO! Posizione punto errata" & "
    "
    				end if 
    			else 
    				valida = false
    				messaggio = "KO! Posizione punto errata" & "
    "
    			end if 
    		else 
    			valida = false 
    			messaggio = "KO! Quantità '@' errata" & "
    "
    		end if 
    	 end function 
    
    	if  (valida(email) <> True ) then  
    		Response.Write("errore.asp?messaggio=" & messaggio)
    	else 
    		Response.Write("errore.asp?messaggio=" & messaggio)
    	end if 
    %>
    Francesco "DAG" D'Aguanno
    www.daguanno.it
    Progettazione, Realizzazione e Manutenzione siti web.

  3. #3
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    La variabile email l'ho solo trascritta male...la funzione invece l'ho presa da freeASP.it, speravo fosse corretta. Grazie
    "Se la montagna vien da te,
    e tu non sei Maometto,
    allora scappa, potrebbe essere una frana!"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.