Jump to content

Where could I find a script that validates an email address when users register?


Smudly

Recommended Posts

I'm trying to create a professional script that validates that an email typed in a text field by the user when they are registering, is an actual email address. So, if the email address is missing the @ sign or doesn't meet the typical parameters that an email should have, it will not pass and the user will have to type in a valid email address. This is pretty advanced for me. Any scripts you guys use that you would like to share? Or, where could I find a script that does something like this?

Link to comment
Share on other sites

Hey thanks for the reply. I'm having some troubles with my email validator however. When I hit submit, I keep getting the error "Enter a Valid Email", even if the email address is valid. There is something wrong with my structure but I can't figure it out. Here is the code I'm working with. The area that is having trouble is:

 

    //////////// Email Validation ////////////
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;
}

        if (validEmail($email)==false){
        $proerror = "Enter a Valid Email";
    }
    else{
    //////////// End Email Validation /////////
   
    $update = "UPDATE `users` SET `fname`='$fnamenew', `lname`='$lnamenew', `email`='$emailnew' WHERE `username`='$username'";
    mysql_query($update);
    $success = "Success!";
    }

 

And here is my entire code:

 

<?php
session_start();
if (isset($_SESSION['username'])){

include('inc/connect.php');



$username = isset($_SESSION['username']) ? $_SESSION['username'] : '';

$edit = (isset($_POST['edit']));
$passchange = (isset($_POST['passchange']));

if (!empty($username))
{
    //if user is logged in

    $sql = mysql_query("SELECT * FROM `users` WHERE `username`='$username'");
    $row = mysql_fetch_assoc($sql);

    $dbfname = $row['fname'];
    $dblname = $row['lname'];
    $dbemail = $row['email'];
    $dbpassword = $row['password'];
    $passcapture = $_POST['password'];
    $password = md5($passcapture);
   
    $error = "";
    $proerror = "";
   
    if ($edit)
    {
   
        $fnamenew = mysql_real_escape_string(strtolower(strip_tags($_POST['fname'])));
        $lnamenew = mysql_real_escape_string(strtolower(strip_tags($_POST['lname'])));
        $emailnew = mysql_real_escape_string(strip_tags($_POST['email']));
       

       
   
    //////////// Email Validation ////////////
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;
}

        if (validEmail($email)==false){
        $proerror = "Enter a Valid Email";
    }
    else{
    //////////// End Email Validation /////////
   
    $update = "UPDATE `users` SET `fname`='$fnamenew', `lname`='$lnamenew', `email`='$emailnew' WHERE `username`='$username'";
    mysql_query($update);
    $success = "Success!";
    }

    $dbfname = $fnamenew;
    $dblname = $lnamenew;
    $dbemail = $emailnew;
   
   
   
   
    }
   
    // Change Password
    if ($passchange)
    {
            if($password){
           
                if($password==$dbpassword){
               
                    $passwordnew = $_POST['passwordnew'];
                    $passwordconf = $_POST['passwordconf'];
                   
                    if (isset($passwordnew) && !empty($passwordnew)){
                   
                        if (isset($passwordconf) && !empty($passwordconf)){
                            if (strlen($passwordnew)>=6 && strlen($passwordconf)>=6){
                           
                                if ($passwordnew==$passwordconf){
                                   
                                    $passwordnew = md5($passwordnew);
                                   
                                $passupdate = "UPDATE `users` SET `password`='$passwordnew' WHERE `username`='$username'";
                                mysql_query($passupdate);
                               
                                $passsuccess = "Success!";
                               
                            }
                            else{
                                $error = "Your new password does not match!";
                            }
                            }
                            else{
                                $error = "Your new password must contain at least 6 characters!";
                            }
                        }
                        else{
                            $error = "Please type in your Confirmed Password!";
                        }
                     
                    }
                    else{
                        $error = "Please type in your New Password!";
                    }
               
                }
                else{
                    $error = "Invalid Password";
                }
       
       
       
            }
            else{
                $error = "Please type in your Password!";
            }
   
   
   
    }
   
}
}
else{
    header("Location: index.php");
}
?>

<html>
<head>
<title>Profile</title>


<script type="text/javascript" language="javascript">
function inputLimiter(e,allow) {
var AllowableCharacters = '';

if (allow == 'UserNameChar'){AllowableCharacters='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';}
if (allow == 'UsernameChar'){AllowableCharacters='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';}

var k;

k=document.all?parseInt(e.keyCode): parseInt(e.which);

if (k!=13 && k!=8 && k!=0){

if ((e.ctrlKey==false) && (e.altKey==false)) {

return (AllowableCharacters.indexOf(String.fromCharCode(k))!=-1);

} else {

return true;

}

} else {

return true;

}

}

</script>
<style>
#container{
    width: 275px;
    margin-left: auto;
    margin-right: auto;
}
#profile{
    width: 222px;
    text-align: right;
    margin-left: auto;
    margin-right: auto;
   
}
#changepassword{
    width: 268px;
    text-align: right;
    margin-left: auto;
    margin-right: auto;
   
}
#centerpro{
    width: 60px;
    margin-left: auto;
    margin-right: auto;
}
#centerpas{
    width: 120px;
    margin-left: auto;
    margin-right: auto;
}
#center{
    width: 150px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
</style>
</head>
<body>
<div id="container">
<div id="profile">
    <h3 align="center">Profile</h3>
<form action="profile.php" method="POST">
    Username: <input type="text" value="<?php echo ucfirst($username); ?>" readonly="readonly"><br />
    First Name: <input type="text" maxlength="25" id="UserNameChar" onkeypress="return inputLimiter(event,'UserNameChar')" name="fname" value="<?php echo ucfirst($dbfname); ?>"><br />
    Last Name: <input type="text" maxlength="25" id="UserNameChar" onkeypress="return inputLimiter(event,'UserNameChar')" name="lname" value="<?php echo ucfirst($dblname); ?>"><br />
    Email: <input type="text" maxlength="64" name="email" value="<?php echo ucfirst($dbemail); ?>"><br />
    <div id="centerpro"><input type="submit" name="edit" value="Submit"></div>
    <div id="center"><?php echo $success, $proerror; ?></div>
</div>   
    <br />
    <br />
<div id="changepassword">
    <h3 align="center">Change Password</h3>
    Password: <input type="password" maxlength="25" name="password"><br /><br />
    New Password: <input type="password" maxlength="25" name="passwordnew"><br />
    Confirm Password: <input type="password" maxlength="25" name="passwordconf"><br />
    <div id="centerpas"><input type="submit" name="passchange" value="Change Password"></div>
    <div id="center"><?php echo $passsuccess, $error; ?></div>
</form>
</div>
</div>
</body>
</html>

 

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.