View Full Version : PHP - Controllo immissione mail
negator136
21-07-2006, 13:35
ciao a tutti,
sono un principiante nell'uso del php e vorrei farvi una domanda...
ho un form in cui un utente può inserire la sua email per iscriversi alla newsletter. come posso fare in modo che il programma mi esegua un controllo e che mi avverta nel caso che la stringa non sia della forma ***@***.***?
grazie mille
ho un form in cui un utente può inserire la sua email per iscriversi alla newsletter. come posso fare in modo che il programma mi esegua un controllo e che mi avverta nel caso che la stringa non sia della forma ***@***.***?Io mi sono fatto una funzione apposita che usa una espressione regolare:
function is_email_valid ($email)
{
if (eregi ("^[a-z0-9\._-]+@[a-z0-9\._-]+(\.[a-z]{2,3}){1,2}$", $email))
return TRUE; // Email valida
else
return FALSE; // Email non valida
}
negator136
21-07-2006, 13:59
Io mi sono fatto una funzione apposita che usa una espressione regolare:
function is_email_valid ($email)
{
if (eregi ("^[a-z0-9\._-]+@[a-z0-9\._-]+(\.[a-z]{2,3}){1,2}$", $email))
return TRUE; // Email valida
else
return FALSE; // Email non valida
}
bella! grazie!
non conoscevo la funzione eregi. ora vado a scoprire cos'è :)
bella! grazie!
non conoscevo la funzione eregi. ora vado a scoprire cos'è :)
c'é anche per JavaScript...ti conviene quasi farne una in JS così da non caricare un altra pagina e poi farlo comuqnue sull'altra in php :)
negator136
21-07-2006, 14:29
ok ho letto un po' di cose sulle espressioni regolari e sono riuscito ad interpretare la tua funzione :)
un paio di domande:
dove scrivi +(\.[a-z]{2,3}){1,2}$ potrei scrivere anche +\.([a-z]{2,3}){1,2}$ o sbaglio?
in questo caso le parentesi tonde sono ancora necessarie?
e a cosa serve {1,2} alla fine?
thanks
negator136
21-07-2006, 14:47
c'é anche per JavaScript...ti conviene quasi farne una in JS così da non caricare un altra pagina e poi farlo comuqnue sull'altra in php :)
purtroppo conosco il JS ancor meno del PHP (ovvero per nulla) quindi mi conviene cercare di restare su quest'ultimo per il momento...
almeno fino a quando non conoscerò il php ad un livello accettabile. :)
bé, se t'interessa:
Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
if (!Filtro.test(email@email.com)){
alert("L'e-mail non é valida.");
}
;)
buona fortuna
dove scrivi +(\.[a-z]{2,3}){1,2}$ potrei scrivere anche +\.([a-z]{2,3}){1,2}$ o sbaglio?
in questo caso le parentesi tonde sono ancora necessarie?
e a cosa serve {1,2} alla fine?Non devi togliere quelle parentesi (altrimenti il significato cambia).
Come vedi non esiste 1 sola ed unica espressione regolare per testare la validità di una email. ianaz ne ha fornita una diversa dalla mia e fatta in Javascript.
Nella mia espressione, la parte (\.[a-z]{2,3}){1,2} serve per questo motivo: dopo il @dominio si possono avere tipicamente altri domini del tipo .com, .it ma anche .co.uk ad esempio.
In pratica, con la mia espressione, si può avere .AA oppure .AAA (vedi {2,3}) e tutto questo si può ripetere una o due volte (vedi {1,2}). Ecco il perché delle parentesi che servono a raggruppare il contenuto.
negator136
21-07-2006, 17:24
Non devi togliere quelle parentesi (altrimenti il significato cambia).
Come vedi non esiste 1 sola ed unica espressione regolare per testare la validità di una email. ianaz ne ha fornita una diversa dalla mia e fatta in Javascript.
Nella mia espressione, la parte (\.[a-z]{2,3}){1,2} serve per questo motivo: dopo il @dominio si possono avere tipicamente altri domini del tipo .com, .it ma anche .co.uk ad esempio.
In pratica, con la mia espressione, si può avere .AA oppure .AAA (vedi {2,3}) e tutto questo si può ripetere una o due volte (vedi {1,2}). Ecco il perché delle parentesi che servono a raggruppare il contenuto.
chiarissimo! non avevo pensato ai domini "doppi" :)
grazie a entrambi
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.