Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Парсить POST запрос 
V
    Опции темы
drkot
Дата 30.8.2009, 02:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Суть такова:
Скрипт получает RAW данные посредством POST Запроса.
После декодирования выясняется что это multipart/form-data.
Но так как это выяснилось только после преобразования данных PHP не создал никаких глобальных переменных.
Вопрос: как заставить скрипт инициализировать переменные?

PS: формат поступающих данных изменить нельзя.

Скажем интересует parse_str, только чтоб умела разбирать multipart/form-data.

Это сообщение отредактировал(а) drkot - 30.8.2009, 02:35


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
Dima50
Дата 30.8.2009, 10:04 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 20.10.2007

Репутация: 1
Всего: 2



Будь добр поясни что такое 
Цитата(drkot @  30.8.2009,  02:29 Найти цитируемый пост)
RAW данные посредством POST Запроса.


Зувучит как каокето очень эзотеричное понятие протокола хттп. 

Как понять RAW применительно к данным пост запроса? 
Чем тебя не устраевает массив $_POST?

По идее PHP автоматически распарисивает данные из формы в массив $_POST.
 А тип multipart/form-data на сколько известно станарнтый при передачи формы.
 

Цитата(drkot @  30.8.2009,  02:29 Найти цитируемый пост)
Но так как это выяснилось только после преобразования данных PHP не создал никаких глобальных переменных.
Вопрос: как заставить скрипт инициализировать переменные?


Для иницилизации глобальных переменных из POST, GET, Cookie надо включить дерективу register_globals=on в php.ini.





Это сообщение отредактировал(а) Dima50 - 30.8.2009, 10:07
PM MAIL   Вверх
icewind
Дата 30.8.2009, 10:52 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



Цитата(Dima50 @  30.8.2009,  10:04 Найти цитируемый пост)

Для иницилизации глобальных переменных из POST, GET, Cookie надо включить дерективу register_globals=on в php.ini.

Да ну...


Я полагаю что если тип multipart/form-data, то загружается файл. Если так, то данные о нем будут не в $_POST, а в $_FILES
Чтоб создавалась переменная $HTTP_RAW_POST_DATA нужно в php.ini включить always_populate_raw_post_data. Или можно брать данные прям из потока php://input


--------------------
user posted image
PM MAIL Skype   Вверх
fesor
Дата 30.8.2009, 11:02 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 16.7.2009
Где: Минск

Репутация: 4
Всего: 4



Dima50, регистер глобалс это есколько другая штука)
PM MAIL WWW   Вверх
Dima50
Дата 30.8.2009, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 20.10.2007

Репутация: 1
Всего: 2



icewind,  точное направление говоришь. 
Только вот не всегда файл передается когда multipart/form-data. Зависит от атрибута формы entype.



 


Цитата(fesor @  30.8.2009,  11:02 Найти цитируемый пост)
Dima50, регистер глобалс это есколько другая штука) 


Ага.  Теперь уже ясно.

Добавлено @ 11:22
Цитата(drkot @  30.8.2009,  02:29 Найти цитируемый пост)
Скажем интересует parse_str, только чтоб умела разбирать multipart/form-data


Формат сообщения на русском описан тут:

http://www.intuit.ru/department/internet/html/17/11.html




Это сообщение отредактировал(а) Dima50 - 30.8.2009, 11:26
PM MAIL   Вверх
Ипатьев
Дата 30.8.2009, 13:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Dima50, а можно пример того, как файл передается с другим атрибутом?
PM MAIL   Вверх
Dima50
Дата 30.8.2009, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 20.10.2007

Репутация: 1
Всего: 2



Цитата(Ипатьев @  30.8.2009,  13:08 Найти цитируемый пост)
Dima50, а можно пример того, как файл передается с другим атрибутом? 


я имел ввиду: Не всегда когда стоит multipart/form-data, передается файл. Могут передаваться и текстовые данные с формы.

пример:
Код

<FORM action="http://server.com/cgi/handle"
      enctype="multipart/form-data"
      method="post">
  <P>
  Как Вас зовут? <INPUT type="text" name="submit-name"><BR>
  Какие файлы Вы послали? <INPUT type="file" name="files"><BR>
  <INPUT type="submit" value="Send"> <INPUT type="reset">
</FORM>



PM MAIL   Вверх
Ипатьев
Дата 30.8.2009, 17:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Не стоит оправдываться. Только еще больше будете запутываться. В прошлый раз было "зависит от enctype". сейчас уже "кроме файла что-то еще". 
Лучше остановиться.

Насколько я понимаю, автору или гуглить, или писать самому. 

Это сообщение отредактировал(а) Ипатьев - 30.8.2009, 17:16
PM MAIL   Вверх
drkot
Дата 12.6.2012, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



не знаю что меня с подвигло пройтись по старым темам...
но все же, вот решение того что мне было нужно
Код

parse_str($data)

всем спасибо за участие


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1023 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.