Validare email in Javascript e PHP
Venerdì 22 Settembre, 2006Per chi sviluppa moduli e FORM di contatti, esiste la necessità di verificare l'immisione di un indirizzo di posta elettronica. Oggi più che mai, con demoni pronti ad eseguire SPAM ovunque, è bene tutelarsi da "furbetti" pronti a sfruttare i moduli HTML per inviare mail illegali o eseguire hack per SPAM e quant'altro.
La prima tutela può arrivare da Javascript, verificando - ad esempio - il campo email di un FORM prima di procedere con l'invio. Diciamo sin da subito che questo risulta un mero pagliativo, relativamente a sistemi di SPAM (o hacker) evoluti. Tuttavia è sempre meglio inserire qualche semplice controllo - preliminare - quantomeno per evitare distrazioni da parte dell'utente - corretto.
Prima di tutto un consiglio semplice: se chiedete il nome, oltre la mail, limitate la lunghezza in caratteri e controllate che al suo interno non sia presente il carattere AT (@). Questo viene spesso usato per inviare - anche in bcc - mail indesiderate. Un esempio eclatante è l'uso della funzione mail() sotto PHP. Il primo parametro di questo funzione è l'indirizzo del destinatario, nella forma semplice:
oppure nella forma estesa
Alcuni sviluppatori usano proprio la forma estesa, inserendo quindi il nome del destinatario chiesto nel FORM, ottenendo una sintassi simile a questa:
Alcuni furbacchioni, quindi, postano in $name una stringa simile a questa: ind1@dom1.com, ind2@dom2.com, ... Così facendo la funzione mail() si trova costretta ad inviare posta a tutti quegli indirizzi, causando non pochi problemi (vedi code sul server). Morale, il nome NON deve essere un indirizzo di posta elettronica!
Verificare invece la correttezza di una email è piuttosto facile, quantomeno a livello sintattico:
-
var r = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
-
if( r.test( email ) )
-
alert("e-mail corretta!");
-
else
-
alert("e-mail NON corretta!");
Si possono poi aggiungere tutta una serie di controlli aggiuntivi personalizzati come: liste di esclusione o inclusione di domini, liste di esclusioni di username, ecc...
Un controllo estremamente più efficace, invece, può essere effettuato da PHP. Oltre a svolgere un controllo sintattico, utilizzando sempre le regular expression, si può sfruttare la funzione checkdnsrr() per eseguire un controllo sui records DNS e verificare, quindi, se il dominio indicato esista davvero!
Questo tipo di controllo - ovviamente - non fornisce una certezza del 100% sull'autenticità della mail, ma quantomeno screma tutta una serie di domini impossibili utilizzati esclusivamente allo scopo di intasare la - nostra - rete!
Insomma, con un controllo Javascript più uno PHP e un po' di attenzione, possiamo almeno limitare i danni provocati dai simpaticoni che potrebbero codificare ben altro - qualcosina di più sottile e divertente - invece dei soliti SPAM (che ormai, diciamolo pure, hanno stancato e risultano davvero obsoleti).






















Classi Javascript e PHP per validare un’indirizzo di posta elettronica | Undolog.com ha detto:
[...] il post Validare email in Javascript e PHP, ecco una simpatica classe Javascript in grado di verificare e controllare indirizzi di posta [...]
Wordpress: come creare passo passo un proprio login | Undolog.com ha detto:
[...] Eseguire una serie di controlli sui campi email e password (vedi anche Validare email in Javascript e PHP) [...]