Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Аналог Query_string для метода Post

329
19 ноября 2005 года
novadesign
144 / / 07.05.2003
Подскажите, пожалуйста есть ли переменная в PHP которая содержала бы всю информацию переданную методом POST (аналог QUERY_STRING для GET), чтоб можно было ее потом самому обрабатывать.
8
19 ноября 2005 года
mfender
3.5K / / 15.06.2005
Цитата:
Originally posted by novadesign
Подскажите, пожалуйста есть ли переменная в PHP которая содержала бы всю информацию переданную методом POST (аналог QUERY_STRING для GET), чтоб можно было ее потом самому обрабатывать.


Это не шутка-ли?
Все данные, которые передаются от браузера в PHP лежат в массиве $_REQUEST. Или по отдельности соответственно в $_GET, $_POST, $_COOKIES.

329
19 ноября 2005 года
novadesign
144 / / 07.05.2003
Цитата:
Originally posted by mfender
Это не шутка-ли?
Все данные, которые передаются от браузера в PHP лежат в массиве $_REQUEST. Или по отдельности соответственно в $_GET, $_POST, $_COOKIES.



Да, но там они уже лежат в виде массива, а мне нужно в виде одной переменной. Неспорю, что можно циклом пройтись и сделать строку, но какой смысл, если по идее оно изначально должно быть в виде однйо строки в какой то переменной, толчно так же как Query_string содержет все что содержится после "?"

8
19 ноября 2005 года
mfender
3.5K / / 15.06.2005
Цитата:
Originally posted by novadesign
Да, но там они уже лежат в виде массива, а мне нужно в виде одной переменной. Неспорю, что можно циклом пройтись и сделать строку, но какой смысл, если по идее оно изначально должно быть в виде однйо строки в какой то переменной, толчно так же как Query_string содержет все что содержится после "?"


Смысл в том, что метод GET передаёт слишком мало данных, которые могут уместиться в строку. Методом POST можно передать много данных. Причём разнотипных, которые могут никак под определение строки не попадать. Например рисунки, архивы, да и просто текст с разделителями \n. Отсюда вывод - аналога Query_string для метода POST не существует.
Риторический вопрос: зачем это нужно?

329
19 ноября 2005 года
novadesign
144 / / 07.05.2003
Цитата:
Originally posted by mfender
Смысл в том, что метод GET передаёт слишком мало данных, которые могут уместиться в строку. Методом POST можно передать много данных. Причём разнотипных, которые могут никак под определение строки не попадать. Например рисунки, архивы, да и просто текст с разделителями \n. Отсюда вывод - аналога Query_string для метода POST не существует.
Риторический вопрос: зачем это нужно?



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

8
19 ноября 2005 года
mfender
3.5K / / 15.06.2005
Нифига себе лог...
А если текста передаётся на сотню килобайт?
Проблема-то надуманная...
Чтобы граблей не было, нужно просто передаваемые данные препарировать.
4
20 ноября 2005 года
mike
3.7K / / 01.10.2002
QUERY_STRING - это переменная среды.

Получит все данные, которые сервер отправил методом POST можно через STDIN

 
Код:
$POST_QUERY_STRING=implode("",file("php://stdin"));


Только учти, что при передаче методом POST данные могут быть в разных форматах.

Вообще, самый правильный вариант в твоем случае, это:

 
Код:
$POST_QUERY_STRING=implode("&",$_POST);
8
20 ноября 2005 года
mfender
3.5K / / 15.06.2005
Цитата:
Originally posted by mike

Вообще, самый правильный вариант в твоем случае, это:

 
Код:
$POST_QUERY_STRING=implode("&",$_POST);


А как он потом этот лог будет разбирать, если в какой-нибудь переменной $_POST['txt'] пятнадцать строк текста?

329
20 ноября 2005 года
novadesign
144 / / 07.05.2003
Цитата:
Originally posted by mfender
А как он потом этот лог будет разбирать, если в какой-нибудь переменной $_POST['txt'] пятнадцать строк текста?



Все дело в том что там не может быть 15 строк текста, восновном в панели всякие селекты и смены паролей... так что тут проблем не бдует. Проверка значений это хорошо, но всегда остается шанс того что кто то окажется проворней и найдет дырку. Искать же как поломали удобней имея максимум информации.

8
20 ноября 2005 года
mfender
3.5K / / 15.06.2005
Цитата:
Originally posted by novadesign
Все дело в том что там не может быть 15 строк текста, восновном в панели всякие селекты и смены паролей... так что тут проблем не бдует. Проверка значений это хорошо, но всегда остается шанс того что кто то окажется проворней и найдет дырку. Искать же как поломали удобней имея максимум информации.


Во! И я о том же.
Чтобы не поломали - каждое поле нужно препарировать, прежде чем в базу постить.
Что касается "там не может быть 15 строк", то это ты сейчас так думаешь. А через три с половиной месяца ты добавишь туда textarea и что - будешь логгер весь переписывать оперативно?
Неправильно всё это.
Вообще, для предотвращения всякого лома через поля массивов существуют незамысловатые htmlspecialchars, addslash и просто ereg_replace. Этого больше чем достаточно, чтобы избежать неприятностей в описанном случае.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог