Есть сервис с которым нужно наладить взаимодейсвие. К документации к нему сказанно — "В начале соединения сервису клиента в POST запросе передаётся XML-документ".
Сервис клиента это мой скрипт.
Как мне получить этот самый XML документ-то?
Пробовал найденый пример $request_xml = file_get_contents("php://input");, но возвращает пустое значение.
Как будет правильно получить содержимое POST запроса целиком?
Re: [PHP] Получение содержимого POST запроса
От:
Аноним
Дата:
21.08.09 13:10
Оценка:
Здравствуйте, Young, Вы писали:
Y>Есть сервис с которым нужно наладить взаимодейсвие. К документации к нему сказанно — "В начале соединения сервису клиента в POST запросе передаётся XML-документ".
Y>Сервис клиента это мой скрипт. Y>Как мне получить этот самый XML документ-то?
Y>Пробовал найденый пример $request_xml = file_get_contents("php://input");, но возвращает пустое значение.
Y>Как будет правильно получить содержимое POST запроса целиком?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Young, Вы писали:
Y>>Есть сервис с которым нужно наладить взаимодейсвие. К документации к нему сказанно — "В начале соединения сервису клиента в POST запросе передаётся XML-документ".
Y>>Сервис клиента это мой скрипт. Y>>Как мне получить этот самый XML документ-то?
Y>>Пробовал найденый пример $request_xml = file_get_contents("php://input");, но возвращает пустое значение.
Y>>Как будет правильно получить содержимое POST запроса целиком?
А>Смотря какой запрос шлете...
Запрос шлю не я. Какой и как шлют пока спросить возможности нет.
Какие могут быть варианты?
Как определить какой мне шлют запрос?
Лично я не понял суть вопроса. Кто и куда шлет запросы? Инфа у кого-то на сервере и ваш скрипт её запрашивает. Или информация у вас на сервере и у вас её запрашивают. И в том и в другом случае сначала отсылается запрос, типа протокол://урл, и на него сервер уже отвечает. Если нет запроса, то и отвечать некуда. Для проверки информации, которая приходит можно поставить программу fiddler2, например, и внимательно просмотреть все отсылаемые и присылаемые заголовки, если запрос исходит от вас.
Y>Запрос шлю не я. Какой и как шлют пока спросить возможности нет. Y>Как определить какой мне шлют запрос?
Посмотрите логи своего сервера, если запросы шлют вам.
Y>Какие могут быть варианты?
Вариантов может быть масса, все не описать. Зависит от протокола запроса, например, от вида запрашиваемого ресурса и параметров.
Есть некий сервис который должен вызывать мой скрипт, про то как он вызывает есть только строчка из документации "В начале соединения сервису клиента в POST запросе передаётся XML-документ" и далее текст самого документа.
Грубо — у меня есть php скрипт, я знаю что его вызывают и POST запросом туда передают данные. Как мне эти данные получить?
Возможности посмотреть логи сервера нет, уточнить что люди подразумевают под передачей POST запроса нет.
Y>Есть сервис с которым нужно наладить взаимодейсвие. К документации к нему сказанно — "В начале соединения сервису клиента в POST запросе передаётся XML-документ".
Y>Сервис клиента это мой скрипт. Y>Как мне получить этот самый XML документ-то?
Y>Пробовал найденый пример $request_xml = file_get_contents("php://input");, но возвращает пустое значение.
Y>Как будет правильно получить содержимое POST запроса целиком?
— самое простое, var_dump($_POST);
— посмотреть содержимое $HTTP_RAW_POST_DATA, проверить включено ли always_populate_raw_post_data в php.ini
— запустить phpinfo() , посмотреть какие параметры там
Здравствуйте, Young, Вы писали:
Y>Есть некий сервис который должен вызывать мой скрипт, про то как он вызывает есть только строчка из документации "В начале соединения сервису клиента в POST запросе передаётся XML-документ" и далее текст самого документа.
Т.е. я так понимаю, что всё-же запрашивают ваш скрипт извне ("вызывать мой скрипт") Y>Грубо — у меня есть php скрипт, я знаю что его вызывают и POST запросом туда передают данные. Как мне эти данные получить?
Более того, видимо, ему передают POSTом данные ("POST запросом туда передают данные") Y>Возможности посмотреть логи сервера нет, уточнить что люди подразумевают под передачей POST запроса нет. Y>Какие варианты можно попробовать?
Если я понял все действительно правильно, то вставте, например в свой php-скрипт ближе к началу что-нить типа:
И в той же папке, что и ваш скрипт, в файле filename будет храниться то, что приходит от пользователей. Естественно, пользователь должен запросить этот скрипт, функция file_put_contents должна присутствовать в сборке, а для папки должно быть достаточно прав на запись.
Re[6]: [PHP] Получение содержимого POST запроса
От:
Аноним
Дата:
21.08.09 21:04
Оценка:
Здравствуйте, piksel, Вы писали:
P>Здравствуйте, Young, Вы писали:
Y>>Есть некий сервис который должен вызывать мой скрипт, про то как он вызывает есть только строчка из документации "В начале соединения сервису клиента в POST запросе передаётся XML-документ" и далее текст самого документа. P>Т.е. я так понимаю, что всё-же запрашивают ваш скрипт извне ("вызывать мой скрипт") Y>>Грубо — у меня есть php скрипт, я знаю что его вызывают и POST запросом туда передают данные. Как мне эти данные получить? P>Более того, видимо, ему передают POSTом данные ("POST запросом туда передают данные") Y>>Возможности посмотреть логи сервера нет, уточнить что люди подразумевают под передачей POST запроса нет. Y>>Какие варианты можно попробовать?
P>Если я понял все действительно правильно, то вставте, например в свой php-скрипт ближе к началу что-нить типа:
P>
P>И в той же папке, что и ваш скрипт, в файле filename будет храниться то, что приходит от пользователей. Естественно, пользователь должен запросить этот скрипт, функция file_put_contents должна присутствовать в сборке, а для папки должно быть достаточно прав на запись.
как всё сложно
file_put_contents("filename", print_r($_POST, true));
Здравствуйте, Аноним, Вы писали:
А>file_put_contents("filename", print_r($_POST, true));
Действительно, 2-й параметр print_r как-то упустил из виду
Я эту функцию сам переписал в своё время для достижения эффекта с использованием 2-го параметра true. Гадство! Проклятая невнимательность!
Здравствуйте, piksel, Вы писали:
P>Действительно, 2-й параметр print_r как-то упустил из виду P>Я эту функцию сам переписал в своё время для достижения эффекта с использованием 2-го параметра true. Гадство! Проклятая невнимательность!
Велосипедостроение очень характерно для ПХПшников. Сам так делал, когда писал на нём. Можешь быть дело в клиентах с их вечными "вчера", может в языке, может в подходе — но факт остаётся фактом — после перехода на .NET желание делать велосипеды куда-то улетучилось...
Здравствуйте, koandrew, Вы писали:
K>Велосипедостроение очень характерно для ПХПшников.
Не очень-то прозорливо всех чесать под одну гребенку. В этой фразе смысла немного, только видна в ней неприязнь. Неприязнь, которая проявляется настолько явно, не несет ровно никакого конструктива. Значит, она лишь выражает настроение, тогда лучше это делать в ветке "холивары", благо такая есть.
K>Сам так делал, когда писал на нём.
Через период обучения (а велосипедостроение — это и есть обучение, если оно не рецидивно) прошло большинство. Это скорее закономерность.
K>Можешь быть дело в клиентах с их вечными "вчера", может в языке, может в подходе — но факт остаётся фактом — после перехода на .NET желание делать велосипеды куда-то улетучилось...
Желание делать велосипеды пропадает всегда, когда знаешь (или помнишь) про более быстрые и отработанные методики. Никак не хотел бы вас задеть, но почему-то не очень приятно, когда вслепую идет какое-либо отождествление.