Daten von extern auslesen

oernilein

Mitglied
Hallo,

ich habe ein Formular mit dem ich Daten an einen externen Server sende.
Ich erhalte eine Seite zurück wo der Bestätigungscode erscheint (als xml)
kann ich mittels PHP diesen Bestätigungscode auslesen und in die DB schreiben?

Danke für Eure Hilfe
 
Richtig, nur mit Curl hast Du das Problem, dass es wohl nur bei weniger Hostern zu finden sein wird.
fsockopen() hingegen ist meines Wissens nach eine Standardfunktion und koennte dementsprechend hoechstens per Konfiguration disabled werden, dies ist aber, soweit ich weiss, eher selten der Fall.
 
Grundsätzlich:
- Freespace Anbieter erlauben zu 99,9% keine Kommunikation nach aussen.
- curl wird sogar von vielen kostenpflichtigen Anbietern untersagt

Wenn du zu deiner Fremdseite per GET schicken kannst, dann geht das recht einfach:

PHP:
$antwort = file($serverurl.'/datei.php?input='.$variable);

$antwort ist dann die Antwortseite
 
Zuletzt bearbeitet:
Hi,

ich betreibe einen eigenen server bei dem Curl auch funktioniert.
Ich habe nun folgendes Problem:

ich habe das Formular welches ich übertragen will.
Dieses sende ich an die CURL Datei per POST.

In der Curldatei steht dann folgendes:

Code:
$ch = curl_init();

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL, "http://xxx.de/send_antrag.pl?antrag=&ticket=$ticketid");
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);

curl_close($ch);


allerdings bekomme ich als antwort das es nicht in ordnung ist.
Wenn ich es aber über das formular direkt an den server sende, bekomme ich ein ok zurück. Habe ich irgendwas vergessen?
 
Mit Curl hab ich bisher nichts gemacht, kam fuer mich nicht in Frage da es halt in freier Wildbahn so selten verfuegbar ist.
Wie sieht denn das Formular aus?

Ich seh jetzt im Moment nicht wo die POST-Daten eingefuegt werden, vielleicht liegt es ja daran.

@MiNiMaG: allow_url_fopen duerfte wohl haeufiger off sein als fsockopen() disabled. Denn allow_url_fopen=on bringt ja bekanntlich ein gewaltiges Sicherheitsrisiko mit wenn der User nicht vernuenftig programmiert hat.
Und auch wenn man einen eigenen Server nutzt muss man damit ja nicht unbedingt die Scheunentore aufreissen.
 
Jupp, aber viele Provider schützen sich anderweitig.

Und wer nicht sicher coden kann, sollte Kommunikationen mit anderen Servern bleiben lassen...
 
Jepp, hab den Fehler gefunden.
Lag an der Übergabe der Postvariablen.
Danke für Eure Hilfe.

PHP:
$ch = curl_init();
$vars= "x=1&y=2";
curl_setopt($ch, CURLOPT_URL, "http://xxx.de/send_antrag.pl");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $vars);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);

curl_close($ch);
 
Zurück