HTTP POST Datenstrom mit php empfangen
HTTP POST Datenstrom mit php empfangen
am 08.09.2006 17:27:13 von Marcel Polty
Hallo,
ich bekomme von einem Server einen XML Datenstrom per HTTP-POST
gesendet. Mehr als "HTTP-POST" weiß ich leider nicht.
Wie kann ich denn den Datenstrom mit php empfangen?
In einem Forum habe ich gelesen das mit "$HTTP_RAW_POST_DATA" geht.
Dazu muss aber in der php.ini die Variable
"always_populate_raw_post_data" auf on gesetzt sein, dies ist aber
beim Provider wo das Script läuft (1&1) nicht der Fall.
Hat jemand Erfahrung damit?
Kann ich die o.g. Variable auch in der .htaccess Datei setzen?
Oder gibt es noch eine andere, vielleicht sogar bessere Methode?
Oder kennt jemand ein Tutorial / Beispielscript etc?
Bin dankbar für jeden Tipp.
Gruß Marcel
Re: HTTP POST Datenstrom mit php empfangen
am 08.09.2006 17:49:06 von Ulf Kadner
Marcel Polty wrote:
> ich bekomme von einem Server einen XML Datenstrom per HTTP-POST
> gesendet. Mehr als "HTTP-POST" weiß ich leider nicht.
>
> Wie kann ich denn den Datenstrom mit php empfangen?
Da must Du erst mal klären wie genau der gesendet wird. Wenns ein
normaler POST-Request ist steht alles, wie üblich in $_POST
oder Du schaust was sich in $GLOBALS ändert wenn ein solcher Request
eintrudelt.
> In einem Forum habe ich gelesen das mit "$HTTP_RAW_POST_DATA" geht.
Auch das geht, stellt aber nix anderes dar wie die rohen Daten aus dem
POST-Request als String.
> Dazu muss aber in der php.ini die Variable
> "always_populate_raw_post_data" auf on gesetzt sein, dies ist aber
> beim Provider wo das Script läuft (1&1) nicht der Fall.
>
> Hat jemand Erfahrung damit?
> Kann ich die o.g. Variable auch in der .htaccess Datei setzen?
Guckst Du ins Manual:
http://www.php.net/manual/en/ini.core.php
always_populate_raw_post_data ist mit den Zugriffsrechten PHP_INI_PERDIR
versehen
Guckst Du weiter Manual:
http://www.php.net/manual/en/configuration.changes.php
MfG, Ulf
Re: HTTP POST Datenstrom mit php empfangen
am 08.09.2006 18:58:44 von Martin Honnen
Marcel Polty wrote:
> ich bekomme von einem Server einen XML Datenstrom per HTTP-POST
> gesendet. Mehr als "HTTP-POST" weiß ich leider nicht.
>
> Wie kann ich denn den Datenstrom mit php empfangen?
Versuche mal
$xmlDocument = new DOMDocument();
$xmlDocument->load('php://input');
Dann hast du ein XML-DOM-Dokument, das du mit der DOM-API und/oder XPath
durchsuchen kannst.
--
Martin Honnen
http://JavaScript.FAQTs.com/
Re: HTTP POST Datenstrom mit php empfangen
am 09.09.2006 07:50:45 von Marcel Polty
Hallo Martin,
Martin Honnen schrieb:
> $xmlDocument = new DOMDocument();
> $xmlDocument->load('php://input');
Danke für den Tipp Martin!!!
Leider bekomme ich aber einen Fatal Error: call to undefined function
load()
DOM XML ist aber enabled in meiner lokalen php 4.4.1 Installation.
An was kann das denn noch liegen?
Ausserdem steht Im Handbuch zu den DOM XML Funktionen der folgende
Hinweis:
*****
Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung,
einschließlich der Funktionsnamen, und alles Andere was hier
dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne
Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese
Erweiterung auf eigenes Risiko.
*****
Was meint ihr? Sollte man das trotzdem verwenden? Nicht das es dann
eines Tages von einem Tag zum anderen nicht mehr funktioniert ..
Danke + Gruß
Marcel
Re: HTTP POST Datenstrom mit php empfangen
am 09.09.2006 14:29:26 von Martin Honnen
Marcel Polty wrote:
> Leider bekomme ich aber einen Fatal Error: call to undefined function
> load()
> DOM XML ist aber enabled in meiner lokalen php 4.4.1 Installation.
Was ich vorgeschlagen hatte, bezieht sich auf PHP 5, wo DOMDocument
eingebaut ist, das ist nicht experiementell.
Aber mit PHP 4 hast du da keine Moeglichkeit, das zu nutzen.
php://input, um den HTTP POST Eingabestrom zu lesen, sollte aber seit
PHP 4.3 funktionieren.
Zum XML-Parsen bleibt dir dann
--
Martin Honnen
http://JavaScript.FAQTs.com/