Previous Page

Is user entering a valid E-mail format in your form? - PHP snippet



Try it out!

Enter an E-mail address:

<?php
/**
Validate an email address.
Provide email address (raw input)
/*
Returns true if the email address has the email 
address format and the domain exists.
*/   

function validEmail($email)
{
   $isValid = true;
   $atIndex = strrpos($email, "@");
   if (is_bool($atIndex) && !$atIndex)
   {
      $isValid = false;
   }
   else
   {
      $domain = substr($email, $atIndex+1);
      $local = substr($email, 0, $atIndex);
      $localLen = strlen($local);
      $domainLen = strlen($domain);
      if ($localLen < 1 || $localLen > 64)
      {
         // local part length exceeded
         $isValid = false;
      }
      else if ($domainLen < 1 || $domainLen > 255)
      {
         // domain part length exceeded
         $isValid = false;
      }
      else if ($local[0] == '.' || $local[$localLen-1] == '.')
      {
         // local part starts or ends with '.'
         $isValid = false;
      }
      else if (preg_match('/\\.\\./', $local))
      {
         // local part has two consecutive dots
         $isValid = false;
      }
      else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain))
      {
         // character not valid in domain part
         $isValid = false;
      }
      else if (preg_match('/\\.\\./', $domain))
      {
         // domain part has two consecutive dots
         $isValid = false;
      }
      else if
(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/',
                 str_replace("\\\\","",$local)))
      {
         // character not valid in local part unless 
         // local part is quoted
         if (!preg_match('/^"(\\\\"|[^"])+"$/',
             str_replace("\\\\","",$local)))
         {
            $isValid = false;
         }
      }
      if ($isValid && !(checkdnsrr($domain,"MX") || 
 checkdnsrr($domain,"A")))
      {
         // domain not found in DNS
         $isValid = false;
      }
   }
   return $isValid;
}/*********************************************************end of function **********************/


/************************ Now check the input from the form *************************************/

//if user entered something
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{ 
		 //get users input from the form
         $emailToCheck = $_POST['email'];
		 
		 //call the function to check the user's input
	     $echeck = validEmail($emailToCheck);		
		
		    //after getting a return value from the function 
	  	    if($echeck == false)
			{
				$isIt =  'Sorry, that is not a valid E-mail address.';	
			}
			else
			{
				$isIt = 'This could very well be a valid E-mail.';
			}
}
?>
//END OF CODE

Below is the simple form. Place inside the body of your html.

<form name="form1" method="POST" action="">
     <table>
 
            <tr><td>Enter an E-mail address: </td>
            <td><input name="email" value="" maxlength="64" type="TEXT"></td>
 
             <td><input name="Submit1" value="Check E-mail" type="Submit"></td></tr>
     </table>
</form>
<!-- END OF CODE -->