1. Man kann die POST Daten nicht 1:1 z.B. als $_POST durchzureichen, sondern muss sie "umpacken" in key=value pairs.
2. Hierfuer kann man zwar http_build_query nehmen, aber aufgepasst: dieses verwendet & amp; als & im Query, was auf dem Zielserver fuer Irritation sorgen kann. Nur bei neueren PHP Versionen kann man explizit als 3. Parameter angeben, dass & verwendet werden soll.
3. Damit das mit HTTPS / SSL ueberhaupt klappt, ohne dass man mit Zertifikaten etc. auf dem zwischengeschalteten Server rumjonglieren muss, einfach ein paar SSL Optionen angeben.
Und so schaut das dann aus:
CODE:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://zielserver-adresse");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST, <weissnimmer-bitte-bei-php>, '&');
curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);
curl_setopt($ch, CURLOPT_TIMEOUT, 180);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
// do something with $data... todo: some failure exception handling...