Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860

    controllo mail [oppinioni]

    salve ragazzi,

    quando voi efettuate i controlli del caso sulla validità di un indirizzo mail che cosa controllate al fine di dire se è o non è un indirizzo valido?

    io di solito controllo se c'è la @, se nella parte alla destra della chiocciola c'è il . ma poi non controllo altro..

    voi?


    Linux Inside

  2. #2
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    La mia "oppinione" è l'utilizzo di una Regular Expression (javascript o ASP), ad esempio una come questa:

    codice:
    <script language="javascript">
    <!--
     
    function submitIt(theform)
    {
    
      re = new RegExp("^[!#$&'*+/-9=?A-Z^-~-]+(\\.[!#$&'*+/-9=?A-Z^-~-]+)*@[!#$&'*+/-9=?A-Z^-~-]+(\\.[!#$&'*+/-9=?A-Z^-~-]+)+$", "i");
     
      if (!theform.Email.value.match(re))
        {
          alert("L'email non è corretto...");
          theform.Email.focus();
          theform.Email.select();
          return(false);
        }
     
      // Abilita l'invio del FORM
      return(true);
    }
     
    //-->
    </script>
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  3. #3
    dopo quinquennale esperienza su regexp io uso questa

    codice:
    '* #######################################
    '* ##FUNC_INT##
    '* @name		isValidEmail
    '* @version		1.0.0
    '* @author		imente
    '* @description
    '*   controlla se una stringa è un'email valida
    '* ---------------------------------------
    '* @params
    '*   argEmail		STR		email da controllare
    '* ---------------------------------------
    '* @return
    '* BOOL		vero/falso
    '* ---------------------------------------
    '* @note
    '* RIGHT
    '* 	TEST@TEST.COM
    '* 	TEST.TEST@TEST.COM
    '* 	TEST.TEST@TEST.CO.UK
    '* 	T@T.IT
    '* WRONG
    '* 	TEST@TEST@TEST.COM
    '* 	TEST.@TEST.COM
    '* 	TEST@.TEST.COM
    '* 	TE$T@TEST.COM
    '* 	TEST@TEST
    '* 	.TEST@TEST.COM 
    '* @#####################################
    
    Function isValidEmail(argEmail)
    	isValidEmail = False
    	
    	Dim Reg
    	Set Reg = New RegExp
    	Reg.Global = True
    	Reg.Ignorecase = True
    	Reg.pattern = "^([a-z][a-z.\d-_]*)?[a-z\d]\@[a-z][a-z.\d-_]*\.[a-z]+$"
    	
    	if Reg.Test(argEmail) then isValidEmail = True
    	
    	set Reg = Nothing
    
    End Function
    se avete di meglio o notate errori passate che mi aggiorno volentieri
    san imente saluta

    * http://simonecingano.it *

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    Originariamente inviato da imente
    dopo quinquennale esperienza su regexp io uso questa

    codice:
    '* #######################################
    '* ##FUNC_INT##
    '* @name		isValidEmail
    '* @version		1.0.0
    '* @author		imente
    '* @description
    '*   controlla se una stringa è un'email valida
    '* ---------------------------------------
    '* @params
    '*   argEmail		STR		email da controllare
    '* ---------------------------------------
    '* @return
    '* BOOL		vero/falso
    '* ---------------------------------------
    '* @note
    '* RIGHT
    '* 	TEST@TEST.COM
    '* 	TEST.TEST@TEST.COM
    '* 	TEST.TEST@TEST.CO.UK
    '* 	T@T.IT
    '* WRONG
    '* 	TEST@TEST@TEST.COM
    '* 	TEST.@TEST.COM
    '* 	TEST@.TEST.COM
    '* 	TE$T@TEST.COM
    '* 	TEST@TEST
    '* 	.TEST@TEST.COM 
    '* @#####################################
    
    Function isValidEmail(argEmail)
    	isValidEmail = False
    	
    	Dim Reg
    	Set Reg = New RegExp
    	Reg.Global = True
    	Reg.Ignorecase = True
    	Reg.pattern = "^([a-z][a-z.\d-_]*)?[a-z\d]\@[a-z][a-z.\d-_]*\.[a-z]+$"
    	
    	if Reg.Test(argEmail) then isValidEmail = True
    	
    	set Reg = Nothing
    
    End Function
    se avete di meglio o notate errori passate che mi aggiorno volentieri
    ciao imente,

    scusa una cosa, sarà che il controllo di mail è più una scienza astratta che reale, ma nella tua classe lui cosa fa controlla solo mail .com e .co.uk?
    oltre a questo hai dimenticato due altre possibilità fra i wrong

    testtesttest ossia che l'utente sia tanto fesso da non mettere la @ oppure soluzioni come (@pippo.com) o (pippo@) ossia che a destra o a sinistra dell'indirizzo manchi un pezzo...

    spero di aver ben interpretato la classe è mattina...
    Linux Inside

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    dimenticavo io farei così... l'ho migliorata proprio oggi..

    codice:
    	'controllo inizialmente la presenza della @
    	if instr(1,cstr(Dest2),"@")>0 then
    	  'estraggo la parte a sinistra e quella a destra della @
    	  dim parteSinistra, parteDestra
    	  parteSinistra=""
    	  parteSinistra=Left(Cstr(Dest2),instr(1,cstr(Dest2),"@")-1)
    	  parteDestra=""
    	  parteDestra=Right(Cstr(Dest2),Len(Cstr(Dest2))-instr(1,cstr(Dest2),"@"))
    	  'effettuo i controlli su queste due parti
    	  if (cstr(parteSinistra)<>"") and (cstr(parteDestra)<>"") then
    	    'controllo la presenza del . nella parte destra 
    		if instr(1,cstr(parteDestra),".")<>0 then
    		  'controllo la poszione del . 
    		  if cint(instr(1,cstr(Request("email")),"."))<>cint(instr(1,cstr(Request("email")),"@"))+1 then
    		    'estraggo il testo alla destra del .
    			dim parteDestraPunto
    		    parteDestraPunto=""
    		    parteDestraPunto=Right(Cstr(parteDestra),Len(Cstr(parteDestra))-instr(1,cstr(parteDestra),"."))
    			'controllo cosa mi rappresenta questo testo
                if (parteDestraPunto<>"co.uk") and (parteDestraPunto<>"us") and (parteDestraPunto<>"net") and (parteDestraPunto<>"it") and (parteDestraPunto<>"com") and (parteDestraPunto<>"org") and (parteDestraPunto<>"eu") and (parteDestraPunto<>"biz") and (parteDestraPunto<>"info") Then
                  flag=8
    			end if
    		  else
    		    flag=7
              end if
    		else
    		  flag=6
    		end if 
    	  else
    	   flag=5
    	  end if
    	else
    	  flag=4
    	end if
    Linux Inside

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    provata or ora e funziona egregiamente....
    Linux Inside

  7. #7
    Originariamente inviato da ThePenguin
    ciao imente,

    scusa una cosa, sarà che il controllo di mail è più una scienza astratta che reale, ma nella tua classe lui cosa fa controlla solo mail .com e .co.uk?
    oltre a questo hai dimenticato due altre possibilità fra i wrong

    testtesttest ossia che l'utente sia tanto fesso da non mettere la @ oppure soluzioni come (@pippo.com) o (pippo@) ossia che a destra o a sinistra dell'indirizzo manchi un pezzo...

    spero di aver ben interpretato la classe è mattina...
    :rollo:

    1. non è una classe ma una semplice funzione.
    2. .com e .co.uk erano SOLO due esempi, per sottolineare che il dominio non si ferma al secondo livello
    3. nei wrong non ho segnalato quelli che hai detto perchè se mai tale funzione li facesse passare sarei completamente rincoglionito. erano sottointesi

    ---

    l'algoritmo che hai scritto sono convinto che funzioni, ma non è un buon metodo.
    le regular expression esistono apposta e oltre ad essere più elastiche sono più performanti.

    ovviamente libero di usare ciò che vuoi, ma una funzione scritta con le regular expression sicuramente è più efficace.

    ---

    ciao
    san imente saluta

    * http://simonecingano.it *

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    si sono certo che la tua soluzione sia più concreta e funzionale della mia che è molto dispendiosa in termini di codice e ho visto qualche volta essere un po' carognetta.
    quindi ti sottopongo uno spezzone del codice dove dovrei introdurre la funzione che hai proposto x vedere se ho ben capito il tutto.

    codice:
      if (NomeDest2<>"") and (Dest2<>"") then
    	'controllo inizialmente la presenza della @
    	if instr(1,cstr(Dest2),"@")>0 then
    	  'estraggo la parte a sinistra e quella a destra della @
    	  dim parteSinistra, parteDestra
    	  parteSinistra=""
    	  parteSinistra=Left(Cstr(Dest2),instr(1,cstr(Dest2),"@")-1)
    	  parteDestra=""
    	  parteDestra=Right(Cstr(Dest2),Len(Cstr(Dest2))-instr(1,cstr(Dest2),"@"))
    	  'effettuo i controlli su queste due parti
    	  if (cstr(parteSinistra)<>"") and (cstr(parteDestra)<>"") then
    		'controllo la presenza del . nella parte destra 
    		if instr(1,cstr(parteDestra),".")<>0 then
    		  'controllo la poszione del . 
    		  if cint(instr(1,cstr(Request("email")),"."))<>cint(instr(1,cstr(Request("email")),"@"))+1 then
    			'estraggo il testo alla destra del .
    			dim parteDestraPunto
    			parteDestraPunto=""
    			parteDestraPunto=Right(Cstr(parteDestra),Len(Cstr(parteDestra))-instr(1,cstr(parteDestra),"."))
    			'controllo cosa mi rappresenta questo testo
    			if (parteDestraPunto<>"co.uk") and (parteDestraPunto<>"us") and (parteDestraPunto<>"net") and (parteDestraPunto<>"it") and (parteDestraPunto<>"com") and (parteDestraPunto<>"org") and (parteDestraPunto<>"eu") and (parteDestraPunto<>"biz") and (parteDestraPunto<>"info") Then
    			  flag=7
    			end if
    		  else
    			flag=6
    		  end if
    		else
    		  flag=5
    		end if 
    	  else
    	   flag=4
    	  end if
    	else
    	  flag=3
    	end if
        Destinatario2=Dest2
        NomeDestinatario2=NomeDest2
      end if
    in breve io in dest2 ho l'indirizzo mail del destinatario, quello da controllare
    io dovrei sostutuire tutto il mio codice con il tuo e quindi

    codice:
    Function isValidEmail(argEmail)
    	isValidEmail = False
    	
    	Dim Reg
    	Set Reg = New RegExp
    	Reg.Global = True
    	Reg.Ignorecase = True
    	Reg.pattern = "^([a-z][a-z.\d-_]*)?[a-z\d]\@[a-z][a-z.\d-_]*\.[a-z]+$"
    	
    	if Reg.Test(argEmail) then isValidEmail = True
    	
    	set Reg = Nothing
    
    End Function
    
    
    if (NomeDest2<>"") and (Dest2<>"") then
    
       pippo=sValidEmail(Dest2)
       if (pippo)=true then
        flag=0
       else
        flag=1
      end if
        Destinatario2=Dest2
        NomeDestinatario2=NomeDest2
      end if
    ciao e grazie
    Linux Inside

  9. #9
    codice:
    if (NomeDest2<>"") and (Dest2<>"") then
         if isValidEmail(Dest2) then
           flag=0
         else
           flag=1
         end if
         Destinatario2=Dest2
         NomeDestinatario2=NomeDest2
    end if
    non so cosa sia quel flag, a cosa si riferisca...

    comunque l'email è valida quando FLAG = 0
    san imente saluta

    * http://simonecingano.it *

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    il flag=0 è un valore che mi creo al fine di riportarlo all'origine.
    Mi spiego, a fine pagina controllo il flag, se è o allora fa il redirect ad una certa pagina altrimenti torna alla pagina dove c'è il form e via request.querystring recupero il valore del flag se <> 0 allora
    apro un allert con JS e avviso il babbeo dell'utente che un certo x campo non è valido...

    grazie
    Linux Inside

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.