Normalment sempre que en un formulari necessito fer la validació del mail la feia en javascript, aquest cop he pensat de fer-la en php.
Al final la solució amb la que m’he quedat és la següent, utilitzant expresions regulars:
if (!eregi(“^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$”, $email)){
die(“Mail incorrecte”);
}else{
die(“Mail correcte”);
}
Solució trobada a plusdosnet
Amb això valides la sintaxi de l’adreça del mail.
Si a més, en cas que el correu passi aquest primer filtre hi afegeixes:
list($usuari,$domini)=split(‘@’,$email);
if(!checkdnsrr($domini,’MX’)) {
die (‘error’);
} else {
die(‘ok’);
}
Tindràs també una validació de que el domini és correcte.
Però al tanto, la crida al checkdnsrr pot trigar en funció de la velocitat dels teus servidors de DNS i pot fer que el procés sigui més lent.
Cert Oriol,
algun cop ja ho he utilitzat, i la veritat esque va prou bé, però a vegades pot donar falsos negatius.
Gràcies!