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

Тема в разделе "PHP", создана пользователем CrashX, 18 мар 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    И так попробую объяснить что мне нужно на примере
    есть класс в которм содержатся следующие свойства, они же являются именами полей в СуБД, которые служат для быстрой генерации запросов и обработка данных, методы не важны тк там идет математический расчет и представление данных, важны лишь свойства (переменные класса)
    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 и более новых версиях, что накладывает большие ограничения на хостинг!

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

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    вот ссылка на то что хочеться что бы было))
    http://phpro.org/classes/Validation-Class.html
    но только без использования
    как бы все это реализовать обычными функциями, пусть кода много будет зато будет работать везде) тк меня интересует совместимость с вериями PHP < 5.2
    а именно 4.3 > PHP VER < 5.0

    Добавлено через 10 минут
    тему можно закрывать, все реализовал)))
    пример реализации в предыдущем посте)) читаем смотрим)
    если что пишите в ICQ 97-67-07
     
    autos нравится это.
Статус темы:
Закрыта.