Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 4 of 4
  1. #1
    Regular Coder
    Join Date
    Jun 2010
    Posts
    163
    Thanks
    10
    Thanked 0 Times in 0 Posts

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

    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?

  • #2
    Supreme Master coder! _Aerospace_Eng_'s Avatar
    Join Date
    Dec 2004
    Location
    In a place far, far away...
    Posts
    19,291
    Thanks
    2
    Thanked 1,043 Times in 1,019 Posts
    Have you searched on your own? Email validation in google brings up a lot of results including this one.

    http://www.linuxjournal.com/article/9585

    Note: the following in the script above
    PHP Code:
    if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A")))
          {
             
    // domain not found in DNS
             
    $isValid false;
          } 
    Doesn't seem to always work with every server. Some servers I've tried on seem to error out there.
    ||||If you are getting paid to do a job, don't ask for help on it!||||

  • #3
    Regular Coder
    Join Date
    Jun 2010
    Posts
    163
    Thanks
    10
    Thanked 0 Times in 0 Posts
    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:

    PHP Code:
        //////////// 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($email0$atIndex);
          
    $localLen strlen($local);
          
    $domainLen strlen($domain);
          if (
    $localLen || $localLen 64)
          {
             
    // local part length exceeded
             
    $isValid false;
          }
          else if (
    $domainLen || $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 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($email0$atIndex);
          
    $localLen strlen($local);
          
    $domainLen strlen($domain);
          if (
    $localLen || $localLen 64)
          {
             
    // local part length exceeded
             
    $isValid false;
          }
          else if (
    $domainLen || $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)>=&& 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>

  • #4
    Supreme Master coder! _Aerospace_Eng_'s Avatar
    Join Date
    Dec 2004
    Location
    In a place far, far away...
    Posts
    19,291
    Thanks
    2
    Thanked 1,043 Times in 1,019 Posts
    Change this
    PHP Code:
    if (validEmail($email)==false){ 
    to this
    PHP Code:
    $email $_POST['email'];
    if (!
    validEmail($email)){ 
    Also where do you define $email? You need to get the $_POST value of your email input. I did that in the code above.
    ||||If you are getting paid to do a job, don't ask for help on it!||||


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •