Jeg skal ikke skifte til nogen anden server! Jeg skal sende fx $name til en php adresse som kan hente dem ved at skrive echo $_post['name']
mvh.
Lasse Espeholt
webmaster for espeholt.dk
Hej Lasse,
Du skal sende en komplet HTTP request afsted til serveren vha. fsocksopen.
Her er hvordan en HTTP POST request ser ud:
POST <path> HTTP/1.0
Host: <server>
Content-Type: application/x-www-form-urlencoded
Content-length: <size of data to send>
<data>
Lad os tage et eksemple:
Vi vil poste 2 værdier (name og msg) til adr:
http://www.testmig.dk/my_post_test.php."name" indeholder "lasse" og "msg" indeholder "I posted a message".
Så vil HTTP requesten se således ud:
POST /my_post_test.php HTTP/1.0
Host: www.testmig.dk
Content-Type: application/x-www-form-urlencoded
Content-length: 33
name=lasse&msg=I+posted+a+message
"Content-length:" angiver størrelsen af din data. I dette tilfælde "name=lasse&msg=I+posted+a+message" som er 33 karakter lang (husk "Content-length:" angives i antal bytes). Data skal URL-encodes lige som var det overført på URL'en.
Det er MEGET vigtigt at du indsætter 2 returns inden data kommer da 2 returns angiver at data starter.
Her er et eks. i php (jeg har ikke testet det så evt. fejl må du bære over med
)
<?php
function post2server($server, $path, $data)
{
$result = "";
$conn = fsockopen($server, 80, $errno, $errstr, 30);
if ($conn)
{
$header = "POST ".$path." HTTP/1.0\\r\\n";
$header .= "Host: ".$server."\\r\\n";
$header .= "Content-Type: application/x-www-form-urlencoded\\r\\n";
$header .= "Content-length: ".strlen($data)."\\r\\n";
$header .= "\\r\\n"; // data start da vi lige har angivet \\r\\n\\r\\n
$header .= $data;
fputs($conn, $header);
while (!feof($conn))
$result .= fgets($conn, 128);
fclose ($conn);
}
return $result;
}
echo post2server("www.testmig.dk",
"/my_post_test.php",
"name=lasse&msg=I+posted+a+message");
?>
Prøv og se om det ikke hjælper.
Michael.[Redigeret d. 09/04-03 22:08:13 af Michael Skovslund][Redigeret d. 09/04-03 22:08:57 af Michael Skovslund][Redigeret d. 09/04-03 22:10:41 af Michael Skovslund]