Class Validation
addRule(string $type, mixed $var, string $label, bool $required = false, int $min = 0, int $max = 0)
Пример проверки регистрации пользователей$validator = new Validator(); $validation -> addRule('equal', array($protect, $_SESSION['protect']), 'Проверочное число не совпало с данными на картинке!') -> addRule('regex', array($logs, '|^[a-z0-9\-]+$|i'), 'Недопустимые символы в логине. Разрешены знаки латинского алфавита, цифры и дефис!', true) -> addRule('regex', array($pars, '|^[a-z0-9\-]+$|i'), 'Недопустимые символы в пароле. Разрешены знаки латинского алфавита, цифры и дефис!', true) -> addRule('email', $meil, 'Вы ввели неверный адрес email, необходим формат [email protected]!') -> addRule('string', $invite, 'Слишком длинный или короткий пригласительный ключ!', setting('invite'), 15, 20) -> addRule('string', $logs, 'Слишком длинный или короткий логин!', true, 3, 20) -> addRule('string', $pars, 'Слишком длинный или короткий пароль!', true, 6, 20) -> addRule('equal', array($pars, $pars2), 'Введенные пароли отличаются друг от друга!') -> addRule('not_equal', array($logs, $pars), 'Пароль и логин должны отличаться друг от друга!'); if ($validator->isValid()){ echo 'Все отлично, ошибок нет!'; } else { showError($validator->getErrors()); }Список допустимых параметров $type
- string (validateString) - проверяет длину текста
- numeric (validateNumeric) - проверяет число подходящее под условие "больше чем N и меньше чем M"
- max (validateMax) - проверяет число подходящее под условие "больше чем N"
- min (validateMin) - проверяет число подходящее под условие "меньше чем N"
- equal (validateEqual) - провеяет строку на эквивалентность
- not_equal (validateNotEqual) - провеяет строку на НЕ эквивалентность
- empty (validateEmpty) - проверяет строку на пустоту
- not_empty (validateNotEmpty) - проверяет строку на НЕ пустоту
- in (validateIn) - проверяет строку на нахождение в переданном списке
- regex (validateRegex) - проверяет строку на регулярное выражение
- float (validateFloat) - проверяет строку на соответствие числу с плавающей точкой
- url (validateUrl) - проверяет строку на соответствие адресной ссылке
- email (validateEmail) - проверяет строку на соответствие адресу электронной почты
- bool (validateBool) - проверяет строку на логический тип
- custom (validateCustom) - Выполняет пользовательскую проверку данных
run()
Запускает проверку и возвращает true если все условия выполнены или массив со списком ошибокif ($validator->isValid()){ echo 'Все отлично, ошибок нет!'; } else { showError($validator->getErrors()); }
addError($error)
Добавляет ошибку в списокИспользуется для пользовательской проверки некоторых данных
Аналогично фильтру custom (validateCustom)
if (substr_count($logs, '-') > 2) { $validation -> addError('Запрещено использовать в логине слишком много дефисов!'); }
getErrors()
Выводит массив ошибок, если массив пустой ошибок нетvalidateString
addRule('string', $invite, 'Слишком длинный или короткий пригласительный ключ!', true, 15, 20)Если передан required = false, то валидация сработает при пустой строке
validateNumeric
addRule('numeric', $count, 'Слишком больше или маленькое число', true, 5, 5000)Если передан required = false, то валидация сработает при пустой строке
validateMax
addRule('max', array(getUser('point'), 50), 'У вас недостаточно актива!')
validateMin
addRule('min', array(getUser('timenickname'), SITETIME), 'Изменять ник можно не чаще чем 1 раз в сутки!')
validateEqual
addRule('equal', array($pars, $pars2), 'Введенные пароли отличаются друг от друга!')
validateNotEqual
addRule('not_equal', array($logs, $pars), 'Пароль и логин должны отличаться друг от друга!')
validateEmpty
addRule('empty', $forums['closed'], 'В данном разделе запрещено создавать темы!')
validateNotEmpty
addRule('not_empty', $forums, 'Раздела для новой темы не существует!')
validateIn
addRule('in', array('jpg', array('gif', 'png', 'jpg', 'jpeg')), 'Недопустимое расширение файла!')
validateRegex
addRule('regex', array($skype, '#^[a-z]{1}[0-9a-z\_\.\-]{5,31}$#'), 'Недопустимый формат Skype, только латинские символы от 6 до 32!', false)Если передан required = false, то валидация сработает при пустой строке
validateFloat
addRule('float', '0.75', 'Необходимо указывать сумму с копейками!', false)Если передан required = false, то валидация сработает при пустой строке
validateUrl
addRule('url', 'https://visavi.net', 'Неверный формат адреса сайта!', true)Если передан required = false, то валидация сработает при пустой строке
validateEmail
addRule('email', $meil, 'Неправильный адрес email, необходим формат [email protected]!', true)Если передан required = false, то валидация сработает при пустой строке
validateBool
addRule('bool', 1, 'Необходимо дать свое согласие!')Возвращает true для значений "1", "true", "on" и "yes". Иначе возвращает false.
validateCustom
Пользовательская проверка данных, подходит для выполнения условий которые не подходят под вышеперечисленные условияaddRule('custom', strcmp($var1, $var2) !== 0, 'Данные не равны при регистрозависимом сравнении!')Возвращает true если условие будет выполнено