Jump to content

Validating email


Xtremer360

Recommended Posts

I'm not sure why my function is not working because I have am putting in a good email address into my field and doing the if statement to see if its valid or not.

 

<?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;
}

// Find out if email address is valid
    validEmail($email); 
    
    echo $isValid;
    
    if ($isValid == False) {
        
        $errors = "yes";
        $message = "You must enter a valid email address!";
        
        $output = array('errorsExist' => true, 'message' => $message);
        
    } 
?>

Link to comment
https://forums.phpfreaks.com/topic/239664-validating-email/
Share on other sites

I applied a variable to the validEmail function and then checked to see if that variable was true or false.

 

 

<?php
// Find out if email address is valid
    $checkEmail = validEmail($email);
    
    if ($checkEmail == false) {
        
        $errors = "yes";
        $message = "You must enter a valid email address!";
        
        $output = array('errorsExist' => true, 'message' => $message);
        
    }
?>

Link to comment
https://forums.phpfreaks.com/topic/239664-validating-email/#findComment-1231170
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.