[PHP XML] HTTP POST raw data

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • SamuraiP1zzaCat
  • Registratie: Augustus 2005
  • Laatst online: 07-04 20:21
Hi,

Ik ben bezig om een scriptje te maken die een xml moet sturen naar een url.
Ik heb in PHP een $var die een xml layout bevat. Deze var moet gepost
worden naar een url. Maar hoe doe ik dit? Ik ben bezig geweest met
fput(); dit werkt niet. Op internet staat eea over http_put_file(); Deze functie
wordt niet herkend als ik hem gebruikt.
Wie kan mij in godesnaam op weg helpen hoe ik een stuk xml naar een
url kan posten in PHP?

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 00:33

MueR

Admin Tweakers Discord

is niet lief

cURL al eens bekeken?

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • SamuraiP1zzaCat
  • Registratie: Augustus 2005
  • Laatst online: 07-04 20:21
Jeetje, is er nix simpelers? Ik hoopte op een soort fputs manier ofzo ....

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:12

Creepy

Tactical Espionage Splatterer

Eeeh, je moet echt een maar een paar regels schrijven met curl. Als dat al te moeilijk is dan heb je een iets ander probleem ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • SamuraiP1zzaCat
  • Registratie: Augustus 2005
  • Laatst online: 07-04 20:21
Creepy schreef op donderdag 07 januari 2010 @ 10:52:
Eeeh, je moet echt een maar een paar regels schrijven met curl. Als dat al te moeilijk is dan heb je een iets ander probleem ;)
Nou het gaat erom dat het geinstalleerd moet worden op de webserver. curl doet het niet automatisch

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 00:33

MueR

Admin Tweakers Discord

is niet lief

Err, als je webserver dermate brak is dat cURL niet geinstalleerd is (is pas een paar releases standaard, sinds php 4.2 ofzo) moet je ofwel je hoster, ofwel je sysadmin schoppen.

[ Voor 5% gewijzigd door MueR op 07-01-2010 11:35 ]

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • SamuraiP1zzaCat
  • Registratie: Augustus 2005
  • Laatst online: 07-04 20:21
MueR schreef op donderdag 07 januari 2010 @ 11:35:
Err, als je webserver dermate brak is dat cURL niet geinstalleerd is (is pas een paar releases standaard, sinds php 4.2 ofzo) moet je ofwel je hoster, ofwel je sysadmin schoppen.
Je hebt gelijk, een kijkje in de phpinfo en ik zag dat het inderdaad enabled stond.
Heb een oplossing met cURL gevonden:
http://mazesolutions.me/php/xml-post-over-https-using-php

Thanks voor de tip

Acties:
  • 0 Henk 'm!

  • SamuraiP1zzaCat
  • Registratie: Augustus 2005
  • Laatst online: 07-04 20:21
SamuraiP1zzaCat schreef op donderdag 07 januari 2010 @ 11:46:
[...]


Je hebt gelijk, een kijkje in de phpinfo en ik zag dat het inderdaad enabled stond.
Heb een oplossing met cURL gevonden:
http://mazesolutions.me/php/xml-post-over-https-using-php

Thanks voor de tip
Toch nog een vraag, na een dag kutten krijg ik wel respons van de server waar ik naartoe post. Hij zegt alleen "No document posted", misschien dat iemand kan kijken of ik iets over het hoofd zie. Heb nu het volgende staan

<?php
$url = "http://xxxxxx"
$putString = "<xml data xxxxxxx >"

$header[] = "Content-type: text/xml";
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POSTFIELDS, $putString);
curl_setopt($ch, CURLOPT_POST, 1);

$result = curl_exec($ch);

curl_close($ch);
?>

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Je voert nu een post uit, geen put als ik snel even je code check. Check de beschikbare opties is op http://nl2.php.net/curl_setopt

tipje nog: we hebben hier mooie [code=php] mogelijkheden, dat maakt het wat leesbaarder.

Acties:
  • 0 Henk 'm!

  • SamuraiP1zzaCat
  • Registratie: Augustus 2005
  • Laatst online: 07-04 20:21
Cartman! schreef op donderdag 07 januari 2010 @ 17:02:
Je voert nu een post uit, geen put als ik snel even je code check. Check de beschikbare opties is op http://nl2.php.net/curl_setopt

tipje nog: we hebben hier mooie [code=php] mogelijkheden, dat maakt het wat leesbaarder.
Hi, bedankt voor je reactie volgens mij is het gelukt.
Deze optie maakt er een post van: curl_setopt($ch, CURLOPT_POST, 1);

Het zat hem in het aanbieden van de XML data dit moest een lange string zijn zonder line breaks.
Hij lijkt nu te werken

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:44
Je zaait enige verwarring omdat je het hebt over http_put.. en $putString enzo, maar PUT != POST. (Blijkbaar wil je gewoon POST.)

Acties:
  • 0 Henk 'm!

Verwijderd

Ik doe het zo:
PHP:
1
2
3
4
5
$ch = curl_init("http://www.$site.nl/getfile.php");
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, array('file_contents'=>'@docs/'.$doc));
        curl_exec($ch);
        curl_close($ch);

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Das dus een post, geen put...een wezenlijk verschil zoals Soultaker ook al aangeeft.

tipje voor de TS: zoek eerst even goed uit wat je precies moet bereiken want door hier verkeerd te vertellen wat er moet gebeuren kunnen we je niet helpen natuurlijk.

[ Voor 50% gewijzigd door Cartman! op 08-01-2010 15:08 ]

Pagina: 1