Email addresses are another common data entry item that requires field organization checking. There is a standard maintained by the Internet Engineering Task Force (IETF) that defines what a valid email address can be, and it’s much more complex than might be expected.
We use the filter_var()
function and checkdnsrr()
function to validate an email address:
<?php $email = 'info@brainbell.com'; if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { die ('An invalid email format found.'); } //brainbell.com $host = substr(strstr($email, '@'), 1); $ip = gethostbyname($host); if ($ip == $host) { die ('The domain does not exist.'); } if (!checkdnsrr($host, 'MX')) { die ('MX records not found for this domain.'); } echo "$email is a valid email address.";
The first check tests to ensure an email address has been entered in a valid format. If not, an error is generated. The function checkdnsrr()
queries an Internet domain name server (DNS) to check if there is a record of the email domain as a mail exchanger (MX). If the MX record is not found, the domain of the email address isn’t valid and we reject the email address.