Hello,
##Zwischenstand 30.05.2019:
<?php ### function_post2host.php ###
function PostToHost($host,$path,$data,$ssl=FALSE,$autoport=TRUE,$user=FALSE,$pass=FALSE,$referer=FALSE)
{
//Daten anpassen
if(is_array($data))
{
$data_to_send = '';
foreach($data as $name => $var)
{
$data_to_send .= urlencode($name) . '=' . urlencode($var) . '&';
}
$data_to_send = rtrim($data_to_send, '&');
}
else $data_to_send = 'data=' . urlencode($data);
//SSL einbinden, falls gewünscht
if($ssl === TRUE)
{
$port = 443;
$target = 'ssl://' . $host;
}
else
{
$port = 80;
$target = $host;
}
if ($autoport === TRUE)
{
### alter nothing;
}
elseif (is_numeric($autoport) && (0 < $autoport) && ($autoport < 65536))
{
$port = $autoport;
}
else {return false;}
//Verbindung öffnen
if (false === ($fp = fsockopen($target, $port, $errno, $errstr, 30)))
{
return false;
}
stream_set_timeout($fp, 30);
//Header erzeugen
fputs($fp,"POST " . $path . " HTTP/1.1\r\n");
fputs($fp,"Host: " . $host . "\r\n");
if(($user !== FALSE) && ($pass !== FALSE))
{
fputs($fp, "Authorization: Basic " . base64_encode($user.":".$pass)."\r\n");
}
if (FALSE !== $referer)
{
fputs($fp, "Referer: " . urlencode($referer) . "\r\n");
}
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: " . strlen($data_to_send) . "\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data_to_send);
//Antwort abfangen
$res = '';
while(!feof($fp))
{
$res .= fgets($fp, 128);
}
//Verbindung schliessen
fclose($fp);
//Antwort zurückgeben
return $res;
}
###============================================================================
#
# PostToHost($host,$path,$data,$ssl=FALSE,$autoport=TRUE,$user=FALSE,$pass=FALSE,$referer=FALSE)
$_data = array();
$_data ['eins'] = 'erster Eintrag';
$_data ['zwei'] = 'zweiter Eintrag';
$_data ['drei'] = 'dritter Eintrag';
echo "<pre>\r\n";
echo PostToHost("bitworks.de", '/sensor/postresponder.php', $_data, TRUE);
echo "</pre>\r\n";
?>
Es fehlen noch Cookies bzw. Additional Headers.
Die Übertragung per "multipart/form-data" bedarf wohl eher einer eigenständigen Funktion, da hierfür z. B. noch umfangreiche Regeln für den Aufbau der Part-Header sowie Übergabe der Parameter dafür und deren Plausiplitätskontrolle ermittelt werden müssen (z. B. für Fileupload, Kontrolle der Boundary, usw.).
Glück Auf
Tom vom Berg
--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.