Exemplo n.º 1
0
 public static function validate()
 {
     $data = file_get_contents(Application::host() . 'ext/hn_captcha/hn_captcha.x1.example.php?hncaptcha=' . Application::param('hncaptcha') . '&public_key=' . Application::param('public_key') . '&private_key=' . Application::param('private_key'));
     if (strpos($data, 'Congratulation') !== FALSE) {
         $ret = true;
     } else {
         FormErrors::add('captcha', 'Invalid captcha entry, please try again');
         $ret = false;
     }
     return $ret;
 }
 function validate($value)
 {
     $ret = true;
     switch ($this->type) {
         case 'REQUIRED':
             if ($value || is_numeric($value)) {
                 $ret = true;
             } else {
                 $ret = false;
             }
             break;
         case 'NOT':
             if ($value) {
                 $match = preg_replace('/\\\\/', '\\\\', $this->value);
                 $ret = !preg_match('/' . $match . '/', $value);
             }
             break;
         case 'MATCH':
             if ($value) {
                 $match = preg_replace('/\\\\/', '\\\\', $this->value);
                 $ret = preg_match('/' . $match . '/', $value);
             }
             break;
         case 'GREATER':
             if ($value) {
                 if (is_numeric($value)) {
                     $ret = $value > $this->value;
                 } else {
                     $ret = false;
                 }
             } else {
                 $ret = false;
             }
             break;
         case 'LESS':
             if ($value) {
                 if (is_numeric($value)) {
                     $ret = $value < $this->value;
                 } else {
                     $ret = false;
                 }
             }
             break;
         case 'EQUALS':
             if ($value) {
                 if (is_numeric($value)) {
                     $ret = $value == $this->value;
                 } else {
                     $ret = false;
                 }
             }
             break;
         case 'NOT_EQUALS':
             if ($value) {
                 if (is_numeric($value)) {
                     $ret = $value != $this->value;
                 } else {
                     $ret = false;
                 }
             }
             break;
         case 'NUMBER':
             $ret = is_numeric($value);
             break;
         case 'EMAIL':
             if ($value) {
                 $ret = FormValidationRequirement::validateEmail($value);
             }
             break;
         case 'PASSWORD':
             if ($value) {
                 $confirm = Application::param($this->name . '_confirm');
                 $ret = $value == $confirm;
             }
             break;
         case 'DATE':
             if ($value) {
                 $ret = true;
             } else {
                 $ret = false;
             }
             break;
         case 'CUSTOM':
             $class = $this->value;
             $obj = new $class();
             $ret = $obj->validate($value);
             if (!$ret) {
                 $this->error_message = $obj->errorMessage();
             }
             break;
         default:
             throw new Exception('Unsupported validation type: ' . $this->type . ' passed to validate in FormValidationRequirement');
             break;
     }
     if (!$ret) {
         FormErrors::add($this->name, $this->error_message);
     }
     return $ret;
 }