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

Тема в разделе "Программирование", создана пользователем papagot, 04.09.2015.

  1. papagot
    Offline

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

    Регистрация:
    31.08.2015
    Сообщения:
    9
    Симпатии:
    1
    Пол:
    Мужской
    Пишу в адресе 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. Лучший ответ:
    Сообщение #8 от 04.09.2015, автор draff
  4. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 044
    Симпатии:
    519
    Пол:
    Мужской
    https://docs.joomla.org/Retrieving_request_data_using_JInput
    Ну ты же получил переменную,а фильтр не проверяет на Null, потому и не получаешь в результат значение по умолчанию.
    Это уже потом проверяй
    Код (PHP):
    1. <?php if(empty($foo)) echo 'Переменной $foo не присвоено значение';?>
     
  5. papagot
    Offline

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

    Регистрация:
    31.08.2015
    Сообщения:
    9
    Симпатии:
    1
    Пол:
    Мужской
    А к чему тогда в той же документации написано строка в которой есть
    Код (PHP):
    1. $address = JRequest::getVar('address', 'default value goes here', 'post','variable type');

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

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

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 044
    Симпатии:
    519
    Пол:
    Мужской
    По моей ссылке не написано
     
  7. papagot
    Offline

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

    Регистрация:
    31.08.2015
    Сообщения:
    9
    Симпатии:
    1
    Пол:
    Мужской
    Вот что в приведённой ссылки написано
    Вот и вопрос если то самое "default_value" не проверяет на пустоту полученную переменную что эта за дефолтное значение для чего оно тогда нужно?
     
  8. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 044
    Симпатии:
    519
    Пол:
    Мужской
    Ну имя самоговорящее- значение по умолчанию. Или ты решил постебаться к разработчикам API ?
     
  9. papagot
    Offline

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

    Регистрация:
    31.08.2015
    Сообщения:
    9
    Симпатии:
    1
    Пол:
    Мужской
    Так в этом та и соль вся что оно по умолчанию только если в запросе НЕТУ ВООБЩЕ данной переменной а если пустая или не пустая самому проверят как писали выше тогда мне не понятно зачем нужна.... и как это дофолтное значение использовать....
     
  10. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 044
    Симпатии:
    519
    Пол:
    Мужской
    Лучший ответ
    Как обычное значение. Что не так- есть переменная в запросе- используется значение переменной, нет переменной- используется значение по умолчанию. Есть желание посмотреть на фактическое использование фильтрации полученных данных в запросе - рекомендую ознакомиться с классом vRequest Вирт 2
     
    papagot нравится это.
  11. papagot
    Offline

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

    Регистрация:
    31.08.2015
    Сообщения:
    9
    Симпатии:
    1
    Пол:
    Мужской
    Большое спасибо Теперь понятно мне что и зачем.... Твой ответ дал ответ на мой вопрос тему можно закрывать....
     

Поделиться этой страницей

Загрузка...