Здравствуйте, как-то надоело мне периодически проверять POST, GET запрос это или какой другой. И решила этот вопрос так:
$input = array_merge( parseIncomingData( $_GET ), parseIncomingData( $_POST ) );
echo $input['url'];
function clearKey($var) {
$key = mb_eregi_replace("[^a-zа-яё0-9 ]", '', $var);
return $key;
}
function parseIncomingData($data) {
$return = array();
foreach( $data as $key => $value ) {
if(!is_array($value)){
$return[ clearKey($key) ] = $value;
}
}
return $return;
}
Вопрос таков: насколько я потеряла в функционале и насколько я не знаю основ?
Просто что-то мне подсказывает, что так делать нельзя от слова совсем.
comolov
8.01.2019 - 00:51
Какая задача стоит, что должна делать программа? Может $_REQUEST использовать вместо поста и гета?
Приходит 6-10 переменных. Они могут быть либо гет либо пост. Но один раз столкнулась с тем, что какой-то дурак мне слал и пост и гет запрос
comolov
8.01.2019 - 11:43
Используй $_REQUEST тогда.
curious
8.01.2019 - 13:47
В скрипте могут быть разные сценарии в зависимости от GET и POST.
В rest api POST создание ресурса, GET получение.
На мой взгляд лучше явно указывать каким методом мы хотим получить данные на вход.
Сделать какой нибудь хелпер со статическими методами. В качестве 2-го параметра дефолтное значение
input::get('var', null);
input::post('var', null);
if (input::is_post()) {
}
input::request('var', false);
О, кстати вариант. А только не поняла зачем эти null, false вторыми аргументами?
killer8080
8.01.2019 - 20:25
Эли4ка
зачем нужна эта мешанина? GET и POST имеют разное назначение. Если ждёшь параметры в GET то там их и надо искать, причём тут POST?
Цитата (Эли4ка @ 8.01.2019 - 00:55) |
Но один раз столкнулась с тем, что какой-то дурак мне слал и пост и гет запрос |
запросы обычно летят от формы или ссылок на твоей же странице, ты сама их контролируешь, если кто то пытается использовать их не предусмотренным способом, этого его проблемы.
Спустя 2 минуты, 46 секунд killer8080 написал(а):
Цитата (Эли4ка @ 8.01.2019 - 18:33) |
А только не поняла зачем эти null, false вторыми аргументами? |
очевидно дефолтные значения при отсутствии переменных
обрати внимание на
filter_input может это то что тебе нужно
sergeiss
8.01.2019 - 22:46
Цитата (killer8080 @ 8.01.2019 - 20:25) |
если кто то пытается использовать их не предусмотренным способом, этого его проблемы |
Полностью соглашусь с этим высказыванием.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата |
зачем нужна эта мешанина? GET и POST имеют разное назначение. Если ждёшь параметры в GET то там их и надо искать, причём тут POST? |
Ну потому что у меня ссылка вида: type/photo если гет то надо выводить фото, если пост то добавлять.
Цитата |
запросы обычно летят от формы или ссылок на твоей же странице, ты сама их контролируешь, если кто то пытается использовать их не предусмотренным способом, этого его проблемы. |
А мне какой-то придурок( прошу прощения ) через cURL шлет POST,GET,OPTION,DELETE,PUT и по каждой найденной ссылке. Зачем он это делает не пойму, но это напрягает. И хотелось бы знать, зачем он это делает.
Цитата |
обрати внимание на filter_input может это то что тебе нужно |
Смотрела, ну почти оно
sergeiss
9.01.2019 - 13:19
Насчет придурка. Могу предположить, что это идет сканирование с какой-то целью. Но чтобы это узнать наверняка, надо сначала найти его. Затем пробить двоечку в челюсть. Затем прямой левой в печёнку. И поинтересоваться, голосом Жванецкого "а почему, собственно?"
А ссылки, я думаю, лучше поменять на type/photo/get и type/photo/add. Проще и логичнее будет это обрабатывать. Для каждой команды будет только один определенный тип параметра.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата |
Насчет придурка. Могу предположить, что это идет сканирование с какой-то целью. Но чтобы это узнать наверняка, надо сначала найти его. Затем пробить двоечку в челюсть. Затем прямой левой в печёнку. И поинтересоваться, голосом Жванецкого "а почему, собственно?" smile.gif |
Цитата |
А ссылки, я думаю, лучше поменять на type/photo/get и type/photo/add. Проще и логичнее будет это обрабатывать. Для каждой команды будет только один определенный тип параметра. |
Так это ж один файл все обрабатывает. И гет и пост запросы. Это просто реврайт сделан для красоты.
Просто время, когда в директории были файлы с именами: add_photo.php, add_video.php авно канули в лету, хотя мне нравилась такая реализация, но сейчас нельзя так делать.
sergeiss
9.01.2019 - 17:27
Эли4ка, либо ты меня не понимаешь, либо я тебя.
Делай любые рерайты, как тебе удобнее. Но только анализируй еще, какой адрес был использован. И если в нем было написано add, то анализируй POST. А если было get, анализируй GET. Я эту логику имел ввиду.
Впрочем, в зависимости от адреса (внутри единого/корневого обработчика запросов) можно просто подинклудить обработчик add-photo.php или get-photo.php, это ничему не противоречит.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата |
Но только анализируй еще, какой адрес был использован. И если в нем было написано add, то анализируй POST. А если было get, анализируй GET. Я эту логику имел ввиду. |
А, теперь поняла. Не пробовала кстати так делать почему-то
Цитата |
Впрочем, в зависимости от адреса (внутри единого/корневого обработчика запросов) можно просто подинклудить обработчик add-photo.php или get-photo.php, это ничему не противоречит. |
Согласна
Может быть должно идти указание откуда пришла переменная, в некотором смысле суперглобальные массивы -кажется они к ним относятся это интерфейсы обращения к программе, если же в рамках одного интерфейса используется 2 источника данных необходимо указать первый , тот что будет затирать информацию второго при передаче переменных с одинаковым именем.
Иначе будет вот так
Приходит 6-10 переменных. Они могут быть либо гет либо пост. Но один раз столкнулась с тем, что какой-то дурак мне слал и пост и гет запрос
и вот так
если кто то пытается использовать их не предусмотренным способом, этого его проблемы
Полностью соглашусь с этим высказыванием.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.