reenadak icon

validate password

reenadak | PRO | 02/20/18 06:57:50 PM UTC | 0 ⭐ | 429 👁️ | Never ⏰ | []
PHP |

1.71 KB

|

None

|

0 👍

/

0 👎

    
    /*
    - Password validator
    - Ensures a password entered on registration meets specific requirements.
    - If it returns 0 that means it passed
    - If it returns 1 that means the password has less than the minimum characters
    - If it returns 2 that means the password contains less than the minimum special characters
    - If it returns 3 that means the password contains less than the minimum numbers
    - If it returns 4 that means the password contains less than the minimum capital letters
    
    $password               - The password to validate
    $minChars               - The minimum amount of characters the password is permitted to have
    $leastSpecialCharacters - The minimum amount of special characters permitted
    $leastNumbers           - The minimum amount of numbers permitted
    $leastCapitalLetters    - The minimum amount of capital letters permitted
    */
    
    public function validatePassword($password, $minChars = 6, $leastSpecialCharacters = 0, $leastNumbers = 0, $leastCapitalLetters = 0) {
        $valid = 0;
        
        if (strlen($password) < $minChars)
            $valid = 1;
        
        $numSpecialChars = 0;
        $numNumbers = 0;
        $numCapitalLetters = 0;
        
        // iterate through each character in password
        for ($i = 0; $i < strlen($password); $i++) {
            $char = substr($password, $i, 1);
            
            if (!preg_match("#^[a-zA-Z0-9]+$#", $char))
                $numSpecialChars++;
            elseif (preg_match("#^[A-Z]+$#", $char))
                $numCapitalLetters++;
            elseif (preg_match("#^[0-9]+$#", $char))
                $numNumbers++;
        }
        
        if ($numSpecialChars < $leastSpecialCharacters)
            $valid = 2;
        
        if ($numNumbers < $leastNumbers)
            $valid = 3;
        
        if ($numCapitalLetters < $leastCapitalLetters)
            $valid = 4;
        
        return $valid;
    }

Comments