ChrisB: Mit php header() post-daten übertragen...

Beitrag lesen

Hi,

Ok, ich habs jetzt zum laufen gebraucht, hab auf folgendes geändert:
    $fp = fsockopen($host, $port, $errno, $errstr, 30);

ich wollte damit aber auf die Seite weitergeleitet werden, nicht den Inhalt der Seite bei mir anzeigen können!

Mit dem, was du derzeit machst, fordert dein PHP-Script Daten von irgendwoher an. Also ist es auch an deinem PHP-Script, diese ggf. anzuzeigen.

Es existiert keine mir bekannte sichere Moeglichkeit, POST-Daten per HTTP "weiterzuleiten".

Fuer alle 3xx-Statuscodes gilt die Praemisse:
The action required MAY be carried out by the user agent without interaction with the user if and only if the method used in the second request is GET or HEAD.

Zu 301 Moved Permanently merkt der RFC an:

Note: When automatically redirecting a POST request after
      receiving a 301 status code, some existing HTTP/1.0 user agents
      will erroneously change it into a GET request.

Ob das mit "zeitgemaessen" Clients unter Verwendung von HTTP/1.1 anders aussieht, muesste man testen.

302 Found sollte per Spezifikation zwar gehen, ist in der Praxis aber wohl auch untauglich:

Note: RFC 1945 and RFC 2068 specify that the client is not allowed
      to change the method on the redirected request.  However, most
      existing user agent implementations treat 302 as if it were a 303
      response, performing a GET on the Location field-value regardless
      of the original request method. The status codes 303 and 307 have
      been added for servers that wish to make unambiguously clear which
      kind of reaction is expected of the client.

307 Temporary Redirect sollte ebenfalls die POST-Methode beibehalten (k.A., ob das zeitgemaesze Clients so umsetzen) - allerdings auch hier nicht ohne explizite Nachfrage an den Nutzer.

Das einzig halbwegs praxistaugliche waere m.E. eine "Weiterleitung" "per HTML" (und JavaScript):
PHP-Script baut HTML-Formular mit den benoetigten Daten in vorbelegten Feldern auf [1], versieht es mit der externen Zieladresse als action, liefert dieses an den Client aus - und laesst es dort per JavaScript automatisch abschicken.

[1] Geht natuerlich nicht fuer File-Uploads.

MfG ChrisB