public function isValid()
 {
     global $cfg;
     $db = Database::getInstance($cfg['MVC']['dsn']);
     $rules = $db->getAll("SELECT vrclassname, description, fieldname, \r\n\t\t\tfieldvalidators.modulename FROM fieldvalidators, formfields \r\n\t\t\tWHERE formfields.ruleid = fieldvalidators.ruleid\r\n\t\t\tAND formname = '{$this->formName}'");
     //This statement has been removed from the where clause:
     //modulename = '{$this->fieldData['moduleName']}' AND
     $invalidFields = array();
     $sess = Session::getInstance();
     // Validate the submitted fields
     foreach ($rules as $rule) {
         MVCUtils::includeValidator($rule['vrclassname'], $rule['modulename']);
         eval("\$validatorObj = new {$rule['vrclassname']}(\$this->fieldData);");
         $vResult = $validatorObj->isValid($this->fieldData[$rule['fieldname']]);
         if ($vResult !== true) {
             //Put the errors:
             // a) straight into the errors array for backwards compatibility
             // b) into a sub array, whose key is the submitted value for
             //    errorFormName, otherwise use the form name
             $invalidFields[$rule['fieldname']] = $vResult;
             if (!$this->errorFormName) {
                 $invalidFields[$this->formName][$rule['fieldname']] = $vResult;
             } else {
                 $invalidFields[$this->errorFormName][$rule['fieldname']] = $vResult;
             }
         }
         if ($sess->keyExists('auth_user')) {
             BasicLogger::logMessage($sess->getValue('auth_user'), self::module, "debug");
         }
     }
     if (!checkdate($this->fieldData['month'], $this->fieldData['day'], $this->fieldData['year']) || !is_numeric($this->fieldData['month']) || !is_numeric($this->fieldData['day']) || !is_numeric($this->fieldData['year'])) {
         $invalidFields[$this->formName]['form'] = "Invalid Date";
     }
     return $invalidFields;
 }
<?php

/**
 * 
 * @package FrontEnds
 * @subpackage Auth
 */
include_once $cfg['DBAL']['dir']['root'] . '/Database.class.php';
include_once $cfg['MVC']['dir']['root'] . '/MVCUtils.class.php';
MVCUtils::includeValidator('ValidatorRule', 'MVC');
/**
 * Check that a new username is unique
 * 
 * 
 */
class UniqueNewUsername extends ValidatorRule
{
    public function isValid(&$data)
    {
        global $cfg;
        $out = true;
        $sql = 'SELECT COUNT(*) FROM users WHERE username = ?';
        $db = Database::getInstance($cfg['Auth']['dsn']);
        $count = $db->getOne($sql, array($data));
        if ($count == 0) {
            return true;
        } else {
            return "The username use chose is taken";
        }
    }
}