Corsi on-line

Validare una email con PHP 5

Validare un indirizzo email può non essere una cosa semplice in quanto le regole per i nomi a dominio validi possono cambiare in modo drastico da paese a paese; esistono, inoltre, indirizzi email “strani” (come ad es. l’ipotetica casella gianni@127.27.01.01) tuttavia validi ed esistenti.

Date le premesse risulta evidente, quindi, che l’uso delle espressioni regolari con ereg (in merito all’uso di ere si legga questo post) o preg puo essere o molto limitante… oppure si devono costruire delle espressioni “mostruose”!
Per contro ci si puo limitare alla verifica dell’esitenza di una chiocciola e di qualche punto che la segue, cosa che però può non essere considerata sicura.

Fortunatamente, a partire dalla versione 5, il PHP mette a disposizione una funzione che, a mio giudizio, risolve i problemi accennati: si tratta della funzione filter_var().

Tale funzione (nata allo scopo di pulire e validare dati come indirizzi email, IP, url, ecc.) non solo verifica la correttezza formale dell’indirizzo, ma lo ripulisce anche dei caratteri che non c’entrano nulla con un indirizzo email che si desidera verificare.
Personalmente mi sono costruito una funzione che, prima pulisce e poi valida; in caso di successo la nostra funzione ritorna l’indirizzo, in caso contrario restituisce FALSE.
Ecco l’esempio:

function verifica_email($em){
  //pulisco la stringa
  $em = filter_var($em, FILTER_SANITIZE_EMAIL);
  //verifico e ritorno
  return filter_var($em, FILTER_VALIDATE_EMAIL);
}

Come si può notare con due righe di codice ho pulito e verificato senza dover ricorrere a espressioni regolari che possono essere restittive.

Post correlati
I più letti del mese
Tematiche