BrokenCode
BrokenCode

Reputation: 961

Call to undefined function

I have packed some of my code into a function. But when I try to get the function to run I an error:

Fatal error: Call to undefined function qualityCheck()

Here is my code:

//include our db file to make a connection to the mysql db
require_once 'db.php';

//our form is providing us with the value of the input field called username through the GET method
//we store it in the variable $regname 
$regname = htmlspecialchars($_GET['username']);
$regmail = htmlspecialchars($_GET['email']);

if (strlen($regname)<5) {
        echo "Username must be at least 5 characters";
} else {

    qualityCheck($regname);

    function qualityCheck($qcName) {

        //rules for username
        $pattern = "^[a-z0-9_-]{5,20}$";

        //first we check that the username fits the rules
        if (preg_match($pattern, $qcName)) {

            //if quality check is pass, wemake a mysql db query and select all rows from table users with the same username as the one
            //that is intended to be used by the registree if the mysql query returns a value then it means
            //that the username exists already and so we must echo an error message back to the form

                $result = mysqli_query($dblink, "SELECT * FROM users WHERE `username` = '$regname'") 
                or die(mysqli_error($dblink));

                if ((mysqli_affected_rows($dblink)) > 0 ) {
                    echo "Username taken already";
                } else {
                    echo "Username available";
                    }
        } else {

            //if username fails the quality check
            echo "Username must consist of A-Z and 0-9";
        }
    }

}

Upvotes: 1

Views: 1166

Answers (1)

Erin Kim
Erin Kim

Reputation: 71

You want to bring your function out of the if-else block. Your else case should just look like this

} else { 
  qualityCheck($regname);
}

Upvotes: 2

Related Questions