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; }