Registration system -- need some help!

Discussion in 'PHP' started by MCJim, Aug 20, 2008.

  1. #1
    Hi folks, I'm building a registration system for a site for user accounts. I made the form, and it adds the info to a MySQL database. Anyways, I'm concerned with security and validity. Here are some things that I need to know how to do:

    limit characters -- only specific characters can be used, for example only the characters A-Z can be used for entering a name.

    check for valid email -- emails must follow the standard format.

    character count limit -- if the character count is greater than a certain amount, the entered info is invalid, so a user can't add a 10000 character username for example.

    these are the major things that I need help with. Any help, or even a point in the right direction, will be greatly appreciated. Thanks!
     
    MCJim, Aug 20, 2008 IP
  2. ahowell

    ahowell Peon

    Messages:
    38
    Likes Received:
    2
    Best Answers:
    0
    Trophy Points:
    0
    #2
    functions:
    <?php
    
    function isValidEmail($email) {
        // First, we check that there's one @ symbol, 
        // and that the lengths are right.
        if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
            // Email invalid because wrong number of characters 
            // in one section or wrong number of @ symbols.
            return false;
        }
        
        // Split it into sections to make life easier
        $email_array = explode("@", $email);
        $local_array = explode(".", $email_array[0]);
        for ($i = 0; $i < sizeof($local_array); $i++) {
            if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&↪'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) {
                return false;
            }
        }
        
        // Check if domain is IP. If not, 
        // it should be valid domain name
        if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
            $domain_array = explode(".", $email_array[1]);
            if (sizeof($domain_array) < 2) {
                return false; // Not enough parts to domain
            }
            
            for ($i = 0; $i < sizeof($domain_array); $i++) {
                if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])| ↪([A-Za-z0-9]+))$", $domain_array[$i])) {
                    return false;
                }
            }
        }
        return true;
    }
    
    // ---------------------------------------------
    
    function isOnlyLetters($var)
    {
        return (preg_match("/^[a-zA-Z]+$/", $var)) ? true : false;
    }
    
    // ---------------------------------------------
    
    function isValidLength($var, $length)
    {
        return (strlen($var) <= $length) ? true : false;
    }
    
    PHP:
    Use:
    $email = 'me@me.com';
    
    if (isValidEmail($email)) {
        echo 'valid';
    } else {
        echo 'invalid';
    }
    
    
    
    $field = 'testing';
    
    if (isOnlyLetters($field)) {
        echo 'only letters';
    } else {
        echo 'not just letters!';
    }
    
    
    
    $field = '12345678';
    
    if (isValidLength($field, 8)) {
        echo 'valid length';
    } else {
        echo 'invalid length';
    }
    PHP:
     
    ahowell, Aug 20, 2008 IP
  3. MCJim

    MCJim Peon

    Messages:
    163
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    0
    #3
    Thanks a lot :D
     
    MCJim, Aug 20, 2008 IP
  4. lovelycesar

    lovelycesar Peon

    Messages:
    145
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #4
    can we use below?
    
    function isOnlyLetters ($string) {
         return ( ctype_alpha ( $string ) ) ? true : false; // PHP 4 >= 4.0.4, PHP 5
    }
    
    Code (PHP):
    OR just use the PHP function ctype_alpha($string) lonely, don't have to call an external function
    
    $field1 = 'testingazAZ';
    if (ctype_alpha($field1)) {    echo $field1.' : only letters<br>';} 
    else {    echo $field1.' : not just letters<br>';}
    
    Code (PHP):
     
    lovelycesar, Aug 23, 2008 IP