I am trying to check passwords to make sure they contain at least 1 uppercase, lowercase, and one number. I have looked into this but cannot find why every single time, it returns false. For example, I put in Thechedda123 , and it still returns false, and doesn't post to my database.
$password = $_GET["password"];
$regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$";
$query="INSERT INTO `users`(`username`, `password`, `school`, `grade`,`email`, `classes`, `firstname`, `lastname`) VALUES ('$username','$password','$school','$grade','$email','$school','$firstname','$firstname')";
if (preg_match($regex, $password)){
    $result = mysql_query($query);
    if (!$result) {
        $message  = 'Invalid query: ' . mysql_error() . "\n";
        $message  = 'Whole query: ' . $query;
        die($message);
    }
}else{
    $numb = 'true';
    $cap = 'true';
    if (preg_match($regex, $password)){
        $numb = 'false';
    }
    if (preg_match($regex, $password)){
        $cap = 'false';
    }
    echo $cap;
    echo $numb;
}
?>
 
     
    