Verificare la corettezza sintattica di un indirizzo di posta elettronica
Scritto da loigeMolto spesso capita di avere a che fare con moduli in cui si richiede all’utente l’inserimento del proprio indirizzo di posta elettronica e di conseguenza è buona norma effettuare un controllo sulla veridicità dell’indirizzo e-mail, ovvero se l’indirizzo formalmente segue lo schema user@host.ext.
Creare una funzione php che lavori sulla stringa scomponendola ed analizzandola carattere per carattere può non essere un’operazione estremamente semplice e veloce da implementare. Per fortuna però php ci mette a disposizione le potentissime espressioni regolari che semplificheranno moltissimo il nostro lavoro.
La funzione
Vediamo subito come implementare una funzione che prenda in input un presunto indirizzo e-mail e restituisca un valore booleano a seconda che l’indirizzo e-mail sia sintatticamente corretto o meno.
function isValidMail($mail)
{
$eregString = “^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$”;
return (eregi($eregString, $mail));
}
Come avrete capito dal codice la strategia sta nel definire in qualche modo l’insieme di tutti i possibili validi indirizzi e-mail e poi verificare se la stringa in input appartiene a quell’insieme. Le espressioni regolari per l’appunto permettono di definire insiemi di stringhe ed offrono poi varie funzioni per poter gestire questi insiemi. Nel nostro caso abbiamo definito il nostro insieme di tutti gli indirizzi e-mail validi (prendete per buona la definizione, non è l’obbiettivo di questo articolo spiegare come funzionano le espressioni regolari) e poi abbiamo utilizzato la funzione eregi la quale si occupa appunto di verificare se una stringa data fa parte di un insieme specificato tramite un’espressione regolare.
Risorse
Questo breve articolo è stato utile a trovare una soluzione veloce da sviluppare e soprattutto molto efficiente al problema della verifica di un indirizzo e-mail, ma magari per qualcuno ha anche introdotto per la prima volta le espressioni regolari. Se siete interessati ad approfondire il discorso ecco una serie di risorse utili:
- Wikipedia
- Introduzione alle espressioni regolari (HTML.IT)
- Guida alle espressioni regolari (kerouac3001)
Buon divertimento