Andreas Korthaus: Post Befehl für PHP

Beitrag lesen

Hallo!

Für einen Versand wertet mein Script Forumulardaten aus und sollte sie dann, anstatt sie per E-Mail zu versenden, an ein anderes Script posten.
Mit Perl funktioniert das über
use HTTP::Request::Common qw(POST);

weis jemand wie das in PHP funktioniert?

Da giht es mehrer Möglichkeiten, richtet sich auch danach wie Du den Request weiterleiten willst, ob GET oder POST.

fsockopen(), urlencode() und urldecode() kennst Du ja bereits. Ich würde es entweder machen indem ich den gesamten $_POST-Array serializiere mit serialize() (http://php3.de/manual/de/function.serialize.php), also sowas der Art

header("Location: http://www.server.tld/script.php?data=".urlencode(serialize($_POST)));

und dann im endgültigen Script dann mit

$myPOST = unserialize(urldecode($_GET["data"]));

Wobei ich mir nicht sicher bin ob die Weitergabe von parametern mit dem Location-Header erlaubt ist, daher würde ich eher die fsockopen-Variante in Betracht ziehen, und hier einen kompletten POST oder GET Header abschicken.

Unter http://php3.de/manual/de/function.fsockopen.php findest Du auch einige gute Beispiele(vor allem in den Kommentaren!)

Also POST-Daten könntest Du auch wie oben den serializierten Array schicken, oder besser die einzelnen Parameter wieder mit reinschreiben, so dass man am Ende nicht wirklich merkt(bzw. nicht beachten muß!) das die Daten schon durch ein weiteres Script gelaufen sind, das würde ich dann in etwa so anhgehen:

// den Post-Header wie in den Manuals erzeugen, und dann wie folgt den urspünglichen Dsaten-String erzeugen:

foreach($_POST as $key=>$value) {
    $post_data .= urlencode($key)."=".urlencode($value)."&";
}

Und Suche mal im Archiv hier nach fsockopen und POST, da findest Du ne Menge zu dem Thema!

Grüße
Andreas