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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение HTTP_RAW_POST_DATA 
:(
    Опции темы
flashaa
Дата 22.10.2007, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Хочу получить результаты запроса в $HTTP_RAW_POST_DATA.
На php.net в комментариях к этой статье -  http://us2.php.net/variables.predefined
сказано, что для этого нужно изменить enctype у формы. Но у меня почему то не работает - $HTTP_RAW_POST_DATA - всегда пуст
PM MAIL   Вверх
dsCode
Дата 22.10.2007, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

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



flashaa, да, с дефолтным (application/x-www-form-urlencoded) оно не работает, попробуйте послать хэдер application/octet-stream.


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
Li...Man
Дата 22.10.2007, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



От формы ничего независит по крайней мере у меня так и не получилось добится нужного результата..... даже с application/octet-stream

Есть настройка у апача которая автоматически создаёт эту переменную заполняет пустой строкой если в запросе нет данных для этой переменной.

Чтобы отправить такой запрос с HTTP_RAW_POST_DATA через курл необходимо:
пример вырезан из xml-rpc клиента
к сожалению уже потерял код написанный для сокетов, а не для курла... Он более нагляден

$ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $this->Url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, $this->Timeout);

        curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'POST');
        curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
        
        curl_setopt($ch, CURLOPT_USERAGENT, $this->UserAgent);
        
        $header[] = "Content-type: text/xml";
        $header[] = "Accept: text/xml";
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);


Это сообщение отредактировал(а) Li...Man - 22.10.2007, 11:14
PM MAIL   Вверх
flashaa
Дата 22.10.2007, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Мне нужно сделать HTML форму, данные с которой простым сабмитом передавались бы в $HTTP_RAW_POST_DATA. Нет возможности передавать заголовки.

Это сообщение отредактировал(а) flashaa - 22.10.2007, 11:24
PM MAIL   Вверх
Наставник
Дата 23.10.2007, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Уважаемые коллеги, 

Подскажите, как можно  данные передать в переменную окружения $HTTP_RAW_POST_DATA, и вообще возможно это сделать только средствами html и тегом <form>, если же нет, то как это сделать на PHP.
// В продолжении темы http://forum.vingrad.ru/forum/topic-178292...data/index.html


С уважением, Сергей.
PM MAIL WWW   Вверх
sTa1kEr
Дата 23.10.2007, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


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

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



flashaa, убедитесь, что в настройках PHP опция "always_populate_raw_post_data" включена. Или же читайте данные из потока "php://input".
PM MAIL   Вверх
flashaa
Дата 23.10.2007, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Всем кто хотел помочь - спасибо. Проблема была именно в always_populate_raw_post_data.
PM MAIL   Вверх
PARROT
Дата 23.10.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

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



Цитата

как прочитать скриптом данные, посланные методом POST напрямую? 
1. Размер блока переданных данных передается в переменной окружения CONTENT_LENGTH и читается из $_ENV["CONTENT_LENGTH"] или getenv("CONTENT_LENGTH")

2. Если PHP установлен как CGI и ваша программа работает из коммандной строки (в консольном режиме), то данные можно читать из стандартного потока ввода stdin, как из обычного файла.
Для этого достаточно открыть этот поток:
$stdin = fopen("php://stdin", "r");

3. Если PHP как модуль, то данный можно получить из глобальной переменной $HTTP_RAW_POST_DATA (она же $GLOBALS['HTTP_RAW_POST_DATA']). Для этого необходимо в файле php.ini раскомментировать/добавить следующую строчку:
always_populate_raw_post_data = On

или добавить в файл .htaccess:
php_flag always_populate_raw_post_data On


Я  вот только думаю, а зачем? 


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
flashaa
Дата 23.10.2007, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Это нужно для разделения разных типов запросов, например аяксовые данные посылать в HTTP_RAW_POST_DATA а обычные GET и POST туда не будут попадать.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.2546 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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