Hallo Spezialisten,
ich hab hier ein Problem, ich musst emich heute mal mit dem Aufbauen einer Verbindung via fsockopen() (php5) beschäftigen. Und bekomme eine komische Antwort vom Server.
Also: auf meinem IntranetServer (Win2003, WAMP) liegt ein testscript:
test.php
<?php
print_r($_POST);
?>
Dieses versuche ich von meinem lokalen Server (WinXP, WAMP) aus mit einem script aufzurufen:
<?php
session_start();
## Verbindung zum Server herstellen ##
$host = "testserver";
$DataToSend = "test=xyz";
$fp = fsockopen($host, 80, $errno, $errstr); ##80 = Port, 10 = timeout
if(!$fp) $fehler = "<br> $errstr ($errno)";
else {
### Daten an den Server schicken
$request .= "POST /rob/test.php HTTP/1.1\r\n";
$request .= "HOST: $host\r\n";
$request .= "Referer: www.referer.de\r\n";
$request .= "Content-type: application/x-www-form-urlencoded\r\n";
$request .= "Content-lenght: ".strlen($DataToSend)."\r\n";
$request .= "Connection: close\r\n\r\n";
$request .= $DataToSend;
fwrite($fp,$request);
while(!feof($fp))
{
$res .= fgets($fp,128);
}
fclose($fp);
echo '<br><br>ANTWORT: '.$res;
}
?>
Erwarten würde ich nach dem Code das mein lokales Script einen Request an den Server sendet, die test.php zu laden, diese zu parsen (also das print_r() auszuführen) und dessen Antwort zurückzusenden.
Auf dem Bildschirm zu sehen ist aber:
ANTWORT: HTTP/1.1 200 OK [...Headerinfos] print_r($_POST) ?>
Also der Server hat die Datei nur ausgegeben aber nicht geparst. Wie kann sowas sein?
Viele Grüße,
Robert