Class Validation

Класс для валидации входящих данных

addRule(string $type, mixed $var, string $label, bool $required = false, int $min = 0, int $max = 0)

Пример проверки регистрации пользователей
$validation = new Validation();

$validation -> addRule('equal', array($provkod, $_SESSION['protect']), 'Проверочное число не совпало с данными на картинке!')
	-> addRule('regex', array($logs, '|^[a-z0-9\-]+$|i'), 'Недопустимые символы в логине. Разрешены знаки латинского алфавита, цифры и дефис!', true)
	-> addRule('regex', array($pars, '|^[a-z0-9\-]+$|i'), 'Недопустимые символы в пароле. Разрешены знаки латинского алфавита, цифры и дефис!', true)
	-> addRule('email', $meil, 'Вы ввели неверный адрес e-mail, необходим формат name@site.domen!', $config['regmail'])
	-> addRule('string', $invite, 'Слишком длинный или короткий пригласительный ключ!', $config['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 ($validation->run()){
	echo 'Все отлично, ошибок нет!';
} else {
	show_error($validation->getErrors());
}
Список допустимых параметров $type

run()

Запускает проверку и возвращает true если все условия выполнены или массив со списком ошибок
if ($validation->run()){
	echo 'Все отлично, ошибок нет!';
} else {
	show_error($validation->getErrors());
}

addError($error)

Добавляет ошибку в список
Используется для пользовательской проверки некоторых данных
Аналогично фильтру custom (validateCustom)
if (substr_count($logs, '-') > 2) {
	$validation -> addError('Запрещено использовать в логине слишком много дефисов!');
}

getErrors()

Выводит массив ошибок, если массив пустой ошибок нет

validateString

addRule('string', $invite, 'Слишком длинный или короткий пригласительный ключ!', true, 15, 20)
Если передан required = false, то валидация сработает при пустой строке

validateMax

addRule('max', array($udata['point'], $config['eventpoint']), 'У вас недостаточно актива для создания события!')

validateMin

addRule('min', array($udata['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', 'http://visavi.net', 'Неверный формат адреса сайта!', true)
Если передан required = false, то валидация сработает при пустой строке

validateEmail

addRule('email', $meil, 'Неправильный адрес e-mail, необходим формат name@site.domen!', true)
Если передан required = false, то валидация сработает при пустой строке

validateBool

addRule('bool', 1, 'Необходимо дать свое согласие!')
Возвращает true для значений "1", "true", "on" и "yes". Иначе возвращает false.

validateCustom

Пользовательская проверка данных, подходит для выполнения условий которые не подходят под вышеперечисленные условия
addRule('custom', strcmp($var1, $var2) !== 0, 'Данные не равны при регистрозависимом сравнении!')
Возвращает true если условие будет выполнено

Вернуться

Хосты за сутки: [1723] | Хиты за сутки: [13722]
Наши люди: [0] / Всего: [45]