POST mit PHP

Hallo,
vorerst: mir ist klar, wie ich POST request per PHP senden kann. (fsockopen() usw.)

Was ich suche ist die Möglichkeit, per PHP eine Weiterleitung zu einer Seite mit der POST Methode zu erstellen.

Z.B. User besucht meine Seite: example.com/forward.php

und soll jetzt an folgenden Seite weitergeleitet werden:
test.example.com/mit_post.php

Bei dieser Weiterleitung (die ich ja mit header() machen könnte) sollen jetzt aber noch per POST variablen Übergeben werden.

Ist das mit header() irgendwie möglich?
Oder irgendwie anders?

Danke im Vorraus
Dirk

Hallo,

ich glaube kaum, dass das mit PHP geht. Der Post Request muss vom Client (Browser) ausgelöst werden.
Eine Möglichkeit so etwas zu machen wäre evtl. mit Javascript. Du kannst eine Formular mit allen benötigten Varaibalen in Hidden Feldern anlegen und dann bei onload eine submit auslösen.
Falls der User davon nichts mitbekommen sollte, könntest Du das evlt. noch in einem Frame mit 0% Größe abwickeln. Das ganze funzt natürlich nur, wenn vom User Javascript zugelassen ist.

Gruß
Till

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Falls der User davon nichts mitbekommen sollte, könntest Du
das evlt. noch in einem Frame mit 0% Größe abwickeln. Das
ganze funzt natürlich nur, wenn vom User Javascript zugelassen
ist.

Danke, aber das ist genaus mein Problem: ICh möchte auf JavScript verzichten!


Dirk
http://phpmybackuppro.net/mozilla_search_plugins

Da wirst du meines Wissens ein Formular mit machen müssen und dann einen Buton ">Eingang

Hi Dirk,

grundsätzlich nein, das ist im HTTP Protokoll nicht vorgesehen - wie schon Till treffend bemerkt hat muss (MUSS!) POST vom Client ausgehen.

Es spricht allerdings nichts dagegegen, dass Dein Programm der Client ist… wenn Du also von Deinem Programm aus postest, und die Antwort darauf an Deinen Client weitersendest, funktioniert das problemlos. Du musst nur im Response-HTML die entsprechende einsetzen, damit der Client für die nächsten Clicks auch an den richtigen Host geht.

Beispiel (ungetestet, send_my_post wird als gegeben angenommen):

$result = send_my_post($target_host, $target_url, $postdata);
$result = preg_replace("/()/i", „$1“, $result);
echo $result;

Das „preg_replace“ fügt das passende Statement am Anfang der Section ein - vorausgesetzt sie ist vorhanden. Di soplltest also auch nachchecken, ob tatsächlich vorhanden ist, sonst ergänzt Du die Section einfach komplett.

Wär’ eine Idee?

LG aus Wien,
Ernest

im klartext…

Es spricht allerdings nichts dagegegen, dass Dein Programm der
Client ist… wenn Du also von Deinem Programm aus postest,
und die Antwort darauf an Deinen Client weitersendest,
funktioniert das problemlos.

das bedeutet soviel wie dass wenn Du ein login-Fenster so übermitteln willst sich nicht der PC des Nutzers in einen Account einloggt, sondern der Webserver das versucht. Der würde aber wahrscheinlich die cookies nicht annehmen und somit auch dieser Versuch scheitern :wink:

Tjaaa - mit Cookies ist das natürlich ein klitzekleines Problemchen, die sind ja dafür da, dass der Client direkt mit dem Server kommuniziert.

Mein Vorschlag zielt natürlich nicht daraufhin, irgendwelche Fake-Logins bereitzustellen, sondern um ganz korrekte Posts (zB an Suchmaschinen) zu integrieren.

Natürlich: wenn Du die Cookies selbst aus dem Response-Header herausfilterst und weitergibst, kannst Du sie für Deinen Server an den Client weitergeben. Dann musst Du natürlich die ganze Kommunikation mehr oder weniger als Proxy durchziehen, also ohne Tag. Geht aber auch…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]