Валидация (validation.class)

Класс проверки корректности вводимых данных.

Вызов

SYS()->library('validation')

Обращение

validation() // или SYS()->validation

Методы

check

public function check(mixed $params)
return array

Метод проверяет массив данных $params. Метод проверяет post-данные в соответсвии с переданной структурой данных. Для передачи в массив рекомендуется использовать значения из переменной SYS()->DBTables. 

Начиная с версии 1.0.6 метод check может принимать строку, содержащию имя таблицы в переменной SYS()->DBTables.

Вид массива:
 

array(
	'название POST поля' => array(
		'valid' => 'Параметры валидации',
		'label' => 'Название поля для вывода в сообщения об ошибках',
	)
)

// пример

array(
	'name' => array(
		'valid' => 'required/xss/maxlen{255}',
		'label' => 'Название страницы',
	),
	'uri' => array(
		'valid' => 'xss/maxlen{255}',
		'label' => 'Адрес страницы',
	),
	'text' => array(
		'type' => 'text', // Тип указан для базы данных см. install в классе db
		'valid' => 'html/db_clean',
		'label' => 'Описание',
	),
);

Доступны следующие параметры валидации:

_ - параметр обработки произвольной функцией. Пример: 'valid' => '_{aint}/_{md5}'
html - обработка методом text_clean.
db_clean - обработка методом db_clean.
maxlen - указывает максимальную длину строки. Принимает два параметра: 1 - длину строки, 2 - boolean значение обрезать ли строку. Пример: 'valid' => 'maxlen{255|true}' 
minlen
- указывает минимальную длину строки.
email - проверяет валидность email.
name_ru - проверяет, состоит ли поле только из русских букв, пробелов и знаков тире.
name_en - проверяет, состоит ли поле только из латинских букв, знаков подчёркивания, тире и точки.
name - проверяет, состоит ли поле только из латинских и русских букв.
alpha_numeric - проверяет, состоит ли поле только из латинских букв и цифр.
uniq_db - проверяет, уникальное ли поле в базе данных. Принимает 3 параметра: Имя таблицы|поле|текущее значение в md5. Текущее значение указывается для проверки в случае обновления существующей записи.
isset_db - проверяет, существует ли переменная в базе данных. Принимает 2 параметра: Имя таблицы|поле.
required - проверяет, заполнено ли поле.
phone_ru - проверяет валидность Российского телефонного номера.

Параметры разделяются между собой знаком '/', аргументы передаются в параметр в {фигурных скобках}, внутри аргументы разделяются знаком '|'.

Если передать в метод поле без параметров valid и label, поле будет проигнорировано. 

Возвращает массив с проверенными post-данными.

В случае возникновения ошибок, поле не будет возвращено, также в шаблонизатор будет передана переменная $validation_имя поля с текстом ошибки.

Тексты ошибок:

'maxlen' => "Поле %s содержит слишком много символов",
'minlen' => "Поле %s содержит слишком мало символов",
'required' => "Поле %s обязательно для заполнения",
'uniq_db' => "Текст в поле %s уже содержится в базе", 
'isset_db' => "Текст в поле %s не содержится в базе", 
'phone_ru' => "Содержимое поля %s не является российским телефонным номером", 
'email' => "Содержимое поля %s не является e-mail адресом", 
'name' => "Содержимое поля %s может состоять только из латинских или руcских букв", 
'name_ru' => "Содержимое поля %s может состоять только из руcских букв", 
'name_en' => "Содержимое поля %s может состоять только из латинских букв", 
'alpha_numeric' => "Содрежимое поля %s может состоять только из цифр и латинских букв",

Где %s - это переданный label.

result

public function result()
return boolean

Метод возвращает false, если в результате проверки возникла ошибка. Также в случае ошибки будет добавлена flashdata​ переменная в сессию с именем validation_error.

valid

public function valid(string $value, string $valid)
return boolean

Метод проверяет одно значение. Метод не изменяет значения, возвращаемого в result.
$value - значение для проверки
$valid - параметры валидации

value

public function value()
return string

Метод возвращает последнее обрабатываемое значение.

set_valid

public function set_valid(string $filed, string $label, string $valid)
return string

Метод проверяет одно значение. Изменяет result.

$filed - имя post-переменной для проверки
$label - описания поля для вывода в ошибки
$valid - правила валидации

В случае возникновения ошибок поле не будет возвращено, также в шаблонизатор будет передана переменная $validation_имя поля с текстом ошибки.

set_tags

public function set_tags(string $start = '<div class="validation-error">', string $end = '</div>', string $valStart = "<p>", string $valEnd = "</p>")

Метод установки оформительных тегов сообщения об ошибке.

$start - начальный тег блока сообщения
$end - конечный тег блока собщения
$valStart - начальный тег каждой строки сообщения
$valEnd - конечный тег каждой строки сообщения

set_error

public function set_error(string $filed, string $text)

Метод устанавливает пользовательский текст ($text) об ошибке для поля $field. Меняет значение, выводимое в result на false.

get_error

public function get_error(string $filed = null)
return string

Метод возвращает текст ошибок.

$filed - указывается, чтобы получить текст определённого поля

Политика конфиденциальности