/** * Executes the validation * * @param Phalcon\Validation $validator * @param string $attribute * @return boolean */ public function validate(\Phalcon\Validation $validator, $attribute) { $flag = true; $value = $validator->getValue($attribute); $errorCode = $this->getOption('code'); if (!is_array($value)) { $message = '参数必须是数组'; $validator->appendMessage(new Message($message, $attribute, 'Nums')); return false; } $countVal = count($value); $ruleMin = $this->getOption('min'); $ruleMax = $this->getOption('max'); if ($ruleMin == $ruleMax) { if ($countVal < $ruleMin) { $flag = false; } } else { if ($countVal < $ruleMin || $countVal > $ruleMax) { $flag = false; } } if (!$flag) { $message = $this->getOption('message'); if (!$message) { $message = 'The num is not valid'; } $validator->appendMessage(new Message($message, $attribute, 'Nums')); return false; } return true; }
public function validate(Validation $validator, $attribute) { $value = $validator->getValue($attribute); $message = $this->getOption('message'); if (!$message) { $message = '您填写的密码格式有误'; } if (preg_match('/^[a-zA-Z0-9\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\_\\+\\|\\~]{8,32}$/', $value) == 0) { $message = '您填写的密码格式有误,密码只能包含8-32个英文大小写字母、数字和以下符号:!@#$%^&*()_+|~,且不能全部由字母或数字组成。'; $validator->appendMessage(new Message($message, $attribute)); return false; } if (preg_match_all('/[0-9]/', $value) == strlen($value)) { $message = '您填写的密码格式有误,密码不能只包含数字。'; $validator->appendMessage(new Message($message, $attribute)); return false; } if (preg_match_all('/[a-z]/', $value) == strlen($value)) { $message = '您填写的密码格式有误,密码不能只包含英文小写字母。'; $validator->appendMessage(new Message($message, $attribute)); return false; } if (preg_match_all('/[A-Z]/', $value) == strlen($value)) { $message = '您填写的密码格式有误,密码不能只包含英文大写字母。'; $validator->appendMessage(new Message($message, $attribute)); return false; } return true; }
/** * Executes the validation * * @param Phalcon\Validation $validator * @param string $attribute * @return boolean */ public function validate(\Phalcon\Validation $validator, $attribute) { $flag = true; $reqType = $validator->getValue($attribute); // 待校验的文件集合 $fileType = $this->getOption('filetype'); // 合法的文件类型集合 $errorCode = $this->getOption('code'); foreach ($reqType as $file) { $extArr = explode('.', $file); $ext = array_pop($extArr); if (!in_array($ext, $fileType)) { $flag = false; break; } } if (!$flag) { $message = $this->getOption('message'); if (!$message) { $message = 'The filetype is not valid'; } $validator->appendMessage(new Message($message, $attribute, 'filetype')); return false; } return true; }
/** * @param \Phalcon\Validation $validation * @param string $field * * @return boolean * * @throws \Phalcon\Validation\Exception */ public function validate(\Phalcon\Validation $validation, $field) { if (!is_string($field)) { throw new \Phalcon\Validation\Exception("Field name must be a string"); } $label = $this->getOption("label"); if (empty($label)) { $label = $validation->getLabel($field); } $value = $validation->getValue($field); if ($this->isSetOption("allowEmpty") && empty($value)) { return true; } // http://stackoverflow.com/questions/1418423/the-hostname-regex if (!preg_match('/^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)*\\.?$/', $value)) { $message = $this->getOption("message"); if (empty($message)) { $message = "Field :field is not a valid hostname"; } $replacePairs = [":field" => $label]; $validation->appendMessage(new \Phalcon\Validation\Message(strtr($message, $replacePairs), $field, "Hostname")); return false; } return true; }
public function validate(Validation $validation, $attribute) { $value = $validation->getValue($attribute); $model = $this->getOption('model'); $except = $this->getOption("except"); if (empty($model)) { throw new \Exception("Model must be set"); } if (empty($attribute)) { throw new \Exception("arrtibute must be set"); } if ($except) { $number = $model::count(sprintf($attribute . " = %s AND " . $attribute . " != %s", $value, $except)); } else { $number = $model::count(sprintf($attribute . " = %s", $value)); } if (!$number) { $message = $this->getOption('message'); if (empty($message)) { $message = '字段对应的值不存在'; } $validation->appendMessage(new Message($message, $attribute, "Existence")); return false; } return true; }
/** * {@inheritdoc} * * @param Validation $validation * @param string $attribute * * @return bool * @throws Exception */ public function validate(Validation $validation, $attribute) { $value = $validation->getValue($attribute); $field = $this->getOption('label'); if (empty($field)) { $validation->getLabel($attribute); } if (false === $this->hasOption('places')) { throw new Exception('A number of decimal places must be set'); } if ($this->hasOption('digits')) { // Specific number of digits $digits = '{' . (int) $this->getOption('digits') . '}'; } else { // Any number of digits $digits = '+'; } if ($this->hasOption('point')) { $decimal = $this->getOption('point'); } else { // Get the decimal point for the current locale list($decimal) = array_values(localeconv()); } $result = (bool) preg_match(sprintf('#^[+-]?[0-9]%s%s[0-9]{%d}$#', $digits, preg_quote($decimal), $this->getOption('places')), $value); if (!$result) { $message = $this->getOption('message'); $replacePairs = [':field' => $field]; if (empty($message)) { $message = ':field must contain valid decimal value'; } $validation->appendMessage(new Message(strtr($message, $replacePairs), $attribute, 'Decimal')); return false; } return true; }
/** * Executes the validation * * @package base-app * @version 2.0 * * @param object $validation Phalcon\Validation * @param string $field field name * * @return boolean * * @throws \Phalcon\Validation\Exception */ public function validate(\Phalcon\Validation $validation, $field) { $value = $validation->getValue($field); $model = $this->getOption("model"); $attribute = $this->getOption("attribute"); if (empty($model)) { throw new \Phalcon\Validation\Exception("Model must be set"); } if (empty($attribute)) { $attribute = $field; } if ($except = $this->getOption('except')) { $number = $model::count(array($attribute . "=:value: AND " . $attribute . "!= :except:", "bind" => array("value" => $value, 'except' => $except))); } else { $number = $model::count(array($attribute . "=:value:", "bind" => array("value" => $value))); } if ($number) { $label = $this->getOption("label"); if (empty($label)) { $label = $validation->getLabel($field); if (empty($label)) { $label = $field; } } $message = $this->getOption("message"); $replacePairs = array(":field" => $label); if (empty($message)) { $message = $validation->getDefaultMessage("Uniqueness"); } $validation->appendMessage(new \Phalcon\Validation\Message(strtr($message, $replacePairs), $field, "Uniqueness")); return false; } return true; }
public function validate(\Phalcon\Validation $validator, $attribute) { $value = $validator->getValue($attribute); $size = $this->getOption('max'); $max = Functions::bytes($size); if ($max != false) { if ($value['size'] > $max) { $validator->appendMessage(new Message('Превышен допустимый размер файла. Максимальный разрешённый размер - ' . $size . '.', $attribute, 'upload_size')); return false; } return true; } else { $validator->appendMessage(new Message('Неверный формат размера файла', $attribute, 'improperly_formatted_size')); return false; } }
public function validate(\Phalcon\Validation $validation, $field) { $password = $validation->getValue($field); $error = FALSE; if (strlen($password) == 0) { $error = 'You must provide a password.'; } $strength = 0; /*** get the length of the password ***/ $length = strlen($password); /*** check if password is not all lower case ***/ if (strtolower($password) != $password) { $strength += 1; } /*** check if password is not all upper case ***/ if (strtoupper($password) != $password) { $strength += 1; } /*** check string length is 8 -15 chars ***/ if ($length >= 8 && $length <= 15) { $strength += 1; } /*** check if lenth is 16 - 35 chars ***/ if ($length >= 16 && $length <= 35) { $strength += 2; } /*** check if length greater than 35 chars ***/ if ($length > 35) { $strength += 3; } /*** get the numbers in the password ***/ preg_match_all('/[0-9]/', $password, $numbers); $strength += count($numbers[0]); /*** check for special chars ***/ preg_match_all('/[|!@#$%&*\\/=?,;.:\\-_+~^\\\\]/', $password, $specialchars); $strength += sizeof($specialchars[0]); /*** get the number of unique chars ***/ $chars = str_split($password); $num_unique_chars = sizeof(array_unique($chars)); $strength += $num_unique_chars * 2; /*** strength is a number 1-10; ***/ $strength = $strength > 99 ? 99 : $strength; $strength = floor($strength / 10 + 1); $min_strength = \Phalcon\DI::getDefault()->getShared('config')->auth->password_strength; if ($error || $strength < $min_strength) { $message = $this->getOption("message"); if (empty($message)) { if ($error) { $message = 'Please enter a passsword!'; } else { $message = 'Weak password! Try longer with mix of upper & lower case and numbers'; } } $validation->appendMessage(new \Phalcon\Validation\Message($message, $field, "Password")); return false; } return TRUE; }
public function validate(\Phalcon\Validation $validator, $attribute) { $value = $validator->getValue($attribute); if (isset($value['error']) and isset($value['name']) and isset($value['type']) and isset($value['tmp_name']) and isset($value['size'])) { return true; } $validator->appendMessage(new Message('Некорректный файл.', $attribute, 'upload_valid')); return false; }
public function validate(Validation $validator, $attribute) { $value = $validator->getValue($attribute); if (preg_match('/^[a-zA-Z\\x{4e00}-\\x{9fa5}][a-zA-Z\\x{4e00}-\\x{9fa5}_ ]{1,19}$/u', $value) == 0) { $validator->appendMessage(new Message('您填写的动物名格式有误,动物名只能包含2-20个英文大小写字母、汉字、数字、下划线和空格,且不能以数字、下划线和空格开头', $attribute)); return false; } return true; }
public function validate(Validation $validator, $attribute) { $value = $validator->getValue($attribute); $time = strtotime($value); $message = $this->getOption('message'); if (!$message) { $message = '您填写的时间日期格式有误'; } if ($time == false) { $validator->appendMessage(new Message($message, $attribute)); return false; } if (date('Y-n-j H:i:s', $time) != $value) { $validator->appendMessage(new Message($message, $attribute)); return false; } return true; }
public function validate(\Phalcon\Validation $validator, $attribute) { $user = new \Models\User(); if (!$user->isAuth($validator->getValue('login'), $validator->getValue($attribute))) { $validator->appendMessage(new \Phalcon\Validation\Message($this->getOption('message'), $attribute)); return false; } return true; }
public function validate(\Phalcon\Validation $validator, $attribute) { $value = $validator->getValue($attribute); if ((bool) getimagesize($value['tmp_name'])) { return true; } else { $validator->appendMessage(new Message('Файл не является изображением. Для загрузки разрешены только изображения.', $attribute, 'upload_image')); return false; } }
/** * @see \Phalcon\Validation\Validator::validate * @param Validation $validator * @param $attribute * @return bool */ public function validate(Validation $validator, $attribute) { $value = $validator->getValue($attribute); $result = call_user_func($this->_options['callback'], $value); if (!$result) { $message = isset($this->_options['message']) ? $this->_options['message'] : 'validation failed'; $validator->appendMessage(new Message($message, $attribute, 'callback')); } return $result ? true : false; }
public function validate(\Phalcon\Validation $validation, $field) { $value = $validation->getValue($field); $result = $this->_csrf->verify($value, 'form'); if (!$result['is_valid']) { $validation->appendMessage(new Message($result['message'], $field, 'Csrf')); return false; } return true; }
/** * Executes Integer validation * * @param \Phalcon\Validation $validator * @param string $attribute * @return boolean */ public function validate(\Phalcon\Validation $validator, $attribute) { $value = $validator->getValue($attribute); $msg = $this->getOption('message'); if (ctype_digit(strval($value)) == false) { $validator->appendMessage(new Message($msg, $attribute, 'IntegerValidator')); return false; } return true; }
public function validate(\Phalcon\Validation $validator, $attribute) { $value = $validator->getValue($attribute); $di = self::getDi(); $user = $di->get('session')->get('auth'); try { if (!password_verify($value, $user->password)) { $txt = $this->getOption('message') ? $this->getOption('message') : 'Incorrect Password'; $validator->appendMessage(new Message($txt, $attribute)); return false; } return true; } catch (\Exception $e) { die($e->getMessage()); $validator->appendMessage(new Message('General form error', $attribute)); return false; } return true; }
public function validate(\Phalcon\Validation $validator, $attribute) { $value = $validator->getValue($attribute); $di = self::getDi(); try { $exists = Model\User::count(array('username = :name:', 'bind' => array('name' => $value))); if (!$exists) { $txt = $this->getOption('message') ? $this->getOption('message') : 'User not found'; $validator->appendMessage(new Message($txt, $attribute)); return false; } return true; } catch (\Exception $e) { die($e->getMessage()); $validator->appendMessage(new Message('General form error', $attribute)); return false; } return true; }
public function validate(\Phalcon\Validation $validator, $attribute) { $value = $validator->getValue($attribute); $allowed = $this->getOption('allowed'); $ext = strtolower(pathinfo($value['name'], PATHINFO_EXTENSION)); if (in_array($ext, $allowed)) { return true; } $validator->appendMessage(new Message('Запрещённый формат файла. Разрешённые форматы: ' . implode(', ', $allowed) . '.', $attribute, 'upload_type')); return false; }
/** * Executes MinMax validation * * @param \Phalcon\Validation $validator * @param string $attribute * @return boolean */ public function validate(\Phalcon\Validation $validator, $attribute) { $value = $validator->getValue($attribute); $min = $this->getOption('min'); $max = $this->getOption('max'); $msg = $this->getOption('message'); if (is_numeric($value) == false || $value < $min || $value > $max) { $validator->appendMessage(new Message($msg, $attribute, 'MaxMinValidator')); return false; } return true; }
public function validate(\Phalcon\Validation $validation, $field) { $response = $validation->getValue($field); $answer = \Baseapp\Library\Recaptcha::check(\Phalcon\DI::getDefault()->getShared('request')->getClientAddress(), $response); if ($answer['error'] == TRUE) { // Captcha is incorrect $recap_error = $answer['error']; $validation->appendMessage(new \Phalcon\Validation\Message($recap_error, $field, "Recaptcha")); return false; } return TRUE; }
/** * Executes the validation * * @param Phalcon\Validation $validator * @param string $attribute * @return boolean */ public function validate(Validation $validator, $attribute) { $value = $validator->getValue($attribute); if (!$this->validaCPF($value)) { $message = $this->getOption('message'); if (!$message) { $message = 'CPF inválido'; } $validator->appendMessage(new Message($message, $attribute, 'CPF')); return false; } return true; }
public function validate(Validation $validation, $attribute) { $value = $validation->getValue($attribute); if (!preg_match('/1[3578][0-9]{9}/', $value)) { $message = $this->getOption('message'); if (!$message) { $message = '请输入正确的手机号'; } $validation->appendMessage(new Message($message, $attribute, 'Mobile')); return false; } return true; }
/** * Executes the validation * * @param Phalcon\Validation $validator * @param string $attribute * @return boolean */ public function validate(\Phalcon\Validation $validator, $attribute) { $value = $validator->getValue($attribute); if (empty($value) || preg_match('/^[0-9]{10}+$/', $value)) { return true; } $message = $this->getOption('message'); if (!$message) { $message = 'The phone number is not valid'; } $validator->appendMessage(new Message($message, $attribute, 'postcode')); return false; }
/** * Executes validation * * @param \Phalcon\Validation $validator * @param string $attribute * @return boolean */ public function validate(\Phalcon\Validation $validator, $attribute) { $value = $validator->getValue($attribute); $domain = $this->getOption('domain'); $msg = $this->getOption('message'); foreach (explode(",", $value) as $valItem) { if (!in_array($valItem, $domain)) { $validator->appendMessage(new Message($msg, $attribute, 'CsvListValidator')); return false; } } return true; }
/** * Executes the validation * * @param Phalcon\Validation $validator * @param string $attribute * @return boolean */ public function validate(\Phalcon\Validation $validator, $attribute) { $value = $validator->getValue($attribute); if (!filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6)) { $message = $this->getOption('message'); if (!$message) { $message = 'The IP is not valid'; } $validator->appendMessage(new Message($message, $attribute, 'Ip')); return false; } return true; }
/** * 校验大小 * * @param Validation $validation * @param string $field * @return bool */ public function validate(Validation $validation, $field) { $value = $validation->getValue($field); $size = $this->getOption('size'); //判断是否为数字 if (is_numeric($value)) { if ($value != $size) { $label = $this->getOption("label"); if (!$label) { $label = $validation->getLabel($field); } $message = $this->getOption("message"); $replacePairs = [':field' => $label, ':size' => $size]; if (!$message) { $message = ':field size must be equal to :size'; } $validation->appendMessage(new Message(strtr($message, $replacePairs), $field, 'Size')); } return true; } //是否为字符串 if (is_string($value)) { $strLen = function_exists('mb_strlen') ? mb_strlen($value) : strlen($value); if ($strLen != $size) { $label = $this->getOption("label"); if (!$label) { $label = $validation->getLabel($field); } $message = $this->getOption("message"); $replacePairs = [':field' => $label, ':size' => $size]; if (!$message) { $message = ':field string length must be equal to :size'; } $validation->appendMessage(new Message(strtr($message, $replacePairs), $field, 'Size')); } } return true; }
/** * Executes the validation * * @param Phalcon\Validation $validator * @param string $attribute * @return boolean */ public function validate(\Phalcon\Validation $validator, $attribute) { $value = $validator->getValue($attribute); $allowedTypes = ['image/gif', 'image/jpg', 'image/png', 'image/bmp', 'image/jpeg']; if (in_array($value[0]->getRealType(), $allowedTypes)) { return true; } $message = $this->getOption('message'); if (!$message) { $message = 'Invalid file extension.'; } $validator->appendMessage(new Message($message, $attribute, 'postcode')); return false; }
public function validate(\Phalcon\Validation $validation, $attribute) { $value = $validation->getValue('g-recaptcha-response'); $ip = $validation->request->getClientAddress(); if (!$this->verify($value, $ip)) { $message = $this->getOption('message'); if (!$message) { $message = 'Please, confirm you are human'; } $validation->appendMessage(new Message($message, $attribute, 'Recaptcha')); return false; } return true; }