Hallo Leute,
ich versuche, eine PHP-Datei über eine Socketverbindung aufzurufen und ihr POST-Daten zu übermitteln. Ersteres funktioniert gut, nur die POST-Daten kommen nicht an.
Folgendermaßen gehe ich vor:
// generate headers in array.
$t = array();
$t[] = 'POST ' . $uri . ' HTTP/1.1';
$t[] = 'Content-Type: text/html';
$t[] = 'Host: ' . $ip . ':' . $port;
$t[] = 'Content-Length: ' . strlen($content);
$t[] = 'Connection: close';
$t = implode("\r\n",$t) . "\r\n\r\n" . $content . "\r\n";
$fp = fsockopen($ip,$port,$errno,$errstr,10);
fwrite($fp,$t)
Anschließend hole ich mir die Antwort, was auch tadellos funktioniert und nicht mehr Bestandteil meines Problems ist (glaub ich zumindest...)
Die Variablen sind natürlich korrekt ausgefüllt, da bin ich mir recht sicher, abgesehen von der $content. $fp enthält "Resource id #2", also wohl da auch keine schlechte Nachricht vom Webserver. Wenn ich jetzt einen POST-Request übermitteln möchte, kann ich dann einfach schreiben (in der Variablendefinition weiter oben): $content = "field1='inhalt1'"; ?
Die Datei, die per Socketverbindung geöffnet wird, sieht übrigens folgendermaßen aus:
<?php
echo "Dies ist der Inhalt des POST-Feldes field1: ".$_POST['field1'];
?>
Ausgabe ist:
Dies ist der Inhalt des POST-Feldes field1:
print_r($_SERVER) in der angeforderten Datei gibt folgendes:
[REQUEST_METHOD] => POST
[QUERY_STRING] =>
Es sieht also so aus, als würde alles funktionieren, nur die POST-Daten nicht ankommen. Könnte das auch ein Problem mit der Serverkonfiguration sein? Ich sehe nämlich sonst echt keinen Ansatzpunkt mehr...
Vielen vielen Dank im Voraus,
Franz