Вопрос Фильтрация данных GET

Discussion in 'Программирование' started by papagot, Sep 4, 2015.

  1. papagot
    Offline

    papagot Недавно здесь

    Joined:
    Aug 31, 2015
    Messages:
    9
    Likes Received:
    1
    Gender:
    Male
    Пишу в адресе option=com_test&task=TestTask&foo=
    Код (PHP):
    1. $jinput = JFactory::getApplication()->input;
    2.   $foo = $jinput->get('foo', 'undefined', 'GET','STRING'); //var_dump($foo); получаю string(0) ""


    Однако согласно документации (https://docs.joomla.org/J1.5:Retrieving_and_Filtering_GET_and_POST_requests_with_JRequest::getVar)
    Код (PHP):
    1. $address = JRequest::getVar('address', 'default value goes here', 'post','variable type');

    Почему не пишется "undefined"?

    Всё в той же документации написано
    А как фильтровать с FILTER_VALIDATE_URL например? удалять html я как понимаю с помощью маски согласно всё той же документации
    или мне надо писать
    Код (PHP):
    1. filter_var($jinput->get('foo', 'undefined', 'GET','STRING'), FILTER_VALIDATE_URL)


     
  2.  
  3. Best Answer:
    Post #8 by OlegK, Sep 4, 2015
  4. OlegK
    Offline

    OlegK Russian Joomla! Team Staff Member ⇒ Профи ⇐

    Joined:
    Jan 17, 2011
    Messages:
    7,812
    Likes Received:
    771
    Gender:
    Male
    https://docs.joomla.org/Retrieving_request_data_using_JInput
    Ну ты же получил переменную,а фильтр не проверяет на Null, потому и не получаешь в результат значение по умолчанию.
    Это уже потом проверяй
    Код (PHP):
    1. <?php if(empty($foo)) echo 'Переменной $foo не присвоено значение';?>
     
  5. papagot
    Offline

    papagot Недавно здесь

    Joined:
    Aug 31, 2015
    Messages:
    9
    Likes Received:
    1
    Gender:
    Male
    А к чему тогда в той же документации написано строка в которой есть
    Код (PHP):
    1. $address = JRequest::getVar('address', 'default value goes here', 'post','variable type');

    Разве тут уже не проверяется на пустоту?

    К слову в твоей ссылки примерна та же строка
    Код (PHP):
    1. $foo = $jinput->get('varname', 'default_value', 'filter');
     
  6. OlegK
    Offline

    OlegK Russian Joomla! Team Staff Member ⇒ Профи ⇐

    Joined:
    Jan 17, 2011
    Messages:
    7,812
    Likes Received:
    771
    Gender:
    Male
    По моей ссылке не написано
     
  7. papagot
    Offline

    papagot Недавно здесь

    Joined:
    Aug 31, 2015
    Messages:
    9
    Likes Received:
    1
    Gender:
    Male
    Вот что в приведённой ссылки написано
    Вот и вопрос если то самое "default_value" не проверяет на пустоту полученную переменную что эта за дефолтное значение для чего оно тогда нужно?
     
  8. OlegK
    Offline

    OlegK Russian Joomla! Team Staff Member ⇒ Профи ⇐

    Joined:
    Jan 17, 2011
    Messages:
    7,812
    Likes Received:
    771
    Gender:
    Male
    Ну имя самоговорящее- значение по умолчанию. Или ты решил постебаться к разработчикам API ?
     
  9. papagot
    Offline

    papagot Недавно здесь

    Joined:
    Aug 31, 2015
    Messages:
    9
    Likes Received:
    1
    Gender:
    Male
    Так в этом та и соль вся что оно по умолчанию только если в запросе НЕТУ ВООБЩЕ данной переменной а если пустая или не пустая самому проверят как писали выше тогда мне не понятно зачем нужна.... и как это дофолтное значение использовать....
     
  10. OlegK
    Offline

    OlegK Russian Joomla! Team Staff Member ⇒ Профи ⇐

    Joined:
    Jan 17, 2011
    Messages:
    7,812
    Likes Received:
    771
    Gender:
    Male
    Best Answer
    Как обычное значение. Что не так- есть переменная в запросе- используется значение переменной, нет переменной- используется значение по умолчанию. Есть желание посмотреть на фактическое использование фильтрации полученных данных в запросе - рекомендую ознакомиться с классом vRequest Вирт 2
     
    papagot likes this.
  11. papagot
    Offline

    papagot Недавно здесь

    Joined:
    Aug 31, 2015
    Messages:
    9
    Likes Received:
    1
    Gender:
    Male
    Большое спасибо Теперь понятно мне что и зачем.... Твой ответ дал ответ на мой вопрос тему можно закрывать....
     

Share This Page

Loading...