Siechfred: CGI einem PHP-ler erklären / Hilfe !

Beitrag lesen

Vorab: PHP ist nicht unbedingt meine Baustelle, aber um ein Script von einer Sprache in die andere zu transformieren, sollte man schon genau wissen, was es tut.

use LWP::UserAgent;
$ua = new LWP::UserAgent;
$ua->agent("AgentName/0.1 " . $ua->agent);

Referenz auf ein LWP::UserAgent-Objekt, *das* Standardobjekt für den Datenverkehr im WWW.

my $req = new HTTP::Request POST => 'http://www.zieladresse.de/zieldatei.pl';

Neuen POST-Request erzeugen, der an die genannte Zieladresse gesandt wird.

$req->content_type('text');

Inhaltstyp der Daten. Die Angabe indes ist sehr ungewöhnlich, erwartet wird eigentlich ein gültiger MIME-Typ a la 'text/plain' o.ä. (siehe HTTP::Headers).

my $content = getFileContent("$ARGV[0]");
$req->content($content);

Festlegen des Contents des Requests, der aus den Daten der als erstes Argument übergebenen Datei besteht. Hier also der Hinweis, dass wir uns mit dem Script nicht im CGI-Kontext, sondern auf der Konsole befinden.

my $res = $ua->request($req);

Hier wird der Request versandt, das Ergebnis der Anfrage wird in $res gespeichert, dies wiederum ist ein HTTP::Response-Objekt.

print "HTTP Request:\n".$req->as_string()."\n";

Kontrollausgabe.

if ($res->is_success) {
$res_str = "HTTP Response:\n".$res->as_string()."\n";
open( RESPONSE, ">$ARGV[1]" );
print RESPONSE $res->as_string();
close( RESPONSE );
print $res_str;
}

Wenn der Request erfolgreich war, schreibe die Antwort in die Datei, die dem Script als zweiter Parameter übergeben wurde.

else {
print($res->error_as_HTML."\n");
}

Ansonsten schreibe eine Fehlermeldung.

sub getFileContent

Das ist nur das Einlesen der Textdatei.

Mein Versuch das ganze per PHP umzusetzten endete mit folgendem Code:

Ja, das ist das Ding von php-faq.de.

Hierbei gibt der Server immer die Response, das er die daten nicht verarbeiten kann - das CGI hingegen arbeitet problemlos.

Ich vermute, dass das empfangende Script dir die eigentlichen Probleme bereitet. Wenn du mal offen legen könntest, was dieses tut, wäre es einfacher, dir zu helfen.

Siechfred

--
Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.