Получение и фильтрация входящих данных

Статус
В этой теме нельзя размещать новые ответы.

CrashX

В прошлом XSiteCMS
Регистрация
6 Июн 2008
Сообщения
682
Реакции
114
И так попробую объяснить что мне нужно на примере
есть класс в которм содержатся следующие свойства, они же являются именами полей в СуБД, которые служат для быстрой генерации запросов и обработка данных, методы не важны тк там идет математический расчет и представление данных, важны лишь свойства (переменные класса)
PHP:
/**
* Класс Переменных
*/
class Org
{
var $db=null;
var $table='organizacia';
var $org_f=array(
'id'=>false,
'short_name'=>false,
'full_name'=>false,
'tip'=>null,
'otdelen'=>null,
'plat_name'=>null,
'sthet_id'=>null,
'inn'=>null,
'kpp'=>null,
'ogrn'=>null,
'date_reg'=>null,
'code_ifns'=>null,
'name_ifns'=>null
'num_fss'=>null
);
/* МЕТОДЫ НИЖЕ и они не нужны тут*/
}
такие переменные присуствуют в большом колличестве в каждом модуле иногда полей по 20, и фильтрация каждого в отдельности это большая сложность в плане большого колличества однообразного кода

получение наддых происходит по схеме
PHP:
/**
* Класс Переменных
*/
class Variable
{
var $version=0.02;

function post($var=array())
{
foreach($var as $column=>$value):
  $var[$column]=$_POST[$column];
endforeach;
unset($column);
unset($value);
return $var;
}
}
$org->org_f=$Variable->post($org->org_f);
я опустил создание экземпляров, думаю и так понятно по именам, тк у меня они зодаются в специфичной форме и вызов их так же придется долго объяснять))

и так мы получили данные с формы

далее есть функции начиная с версии 5.2
PHP:
filter_input_array() и filter_var_array()
в которых можно делать фильтрацию сдледующим методом
заводим массив элементов соотвествующий именам элементов фильтруемого массива, в которм указываем дириктивами как нужно фильтровать!
пример
PHP:
$filerz=array(
'id'=> FILTER_VALIDATE_INT,
'short_name'=>вот тут мне нужно FILTER_VALIDATE_REGEXP но тут я низнаю как мне задать нужное регулярное выражение или как вызвать пользователькую финкцию вида $engine->is_str_sql() с одним входящим параметром,
'full_name'=>тоже самое что и ранее

);
$onfiltered=filter_var_array($ogr->org_f,$filerz);
благодарая данному намассиву $filerz к указанным элементам массива будут применены указанные фильтры а к остальным фильтр стандартный фильтр))
и так суть данного вопроса такова что нужно реализовать подобные механизм для фильтрации данных в подобном виде в желательно с возможностью вызова указанных пользовательских функций или дикертив которые смогут реализовать что то подобное)

использование данного метода и функций не желательно тк они доступны только в php 5.2 и более новых версиях, что накладывает большие ограничения на хостинг!

если что то не понятно пожалуйста спрашивайте я постараюсь объяснить более понятно не которые моменты
 
вот ссылка на то что хочеться что бы было))

но только без использования
filter_input_array() и filter_var_array()
как бы все это реализовать обычными функциями, пусть кода много будет зато будет работать везде) тк меня интересует совместимость с вериями PHP < 5.2
а именно 4.3 > PHP VER < 5.0

Добавлено через 10 минут
тему можно закрывать, все реализовал)))
пример реализации в предыдущем посте)) читаем смотрим)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху