peronetMedlem sedan sep. 200193 inlägg Hej hej hallå :)
Jag har ett litet problem,.. kommer till det längre ner.
Bakgrund:
Jag kör ett .php script via cron på en burk, jag har ett script som just nu genererar data till en databas på vår burk, problemet är att jag nu skulle vilja utnytja detta script för att transportera data till en ny burk, dock skall denna göra en typ av POST.
Hur bär jag mig åt för att skapa en funktion som skickar vidare 4 värden till ett script som inte är på min server?
Märk nu att mitt script körs av cron och inte direkt i webservern (om det nu gör någon skillnad)
t.ex: http://www.webserver.com/myfile.php?a=1&b=56&c=988&d=123
Det är typ en sådan sträng jag vill skapa till server två.
(vill inte använda mig av header();
Tack på förhand
spangoMedlem sedan juni 20008 205 inlägg Du kör det alltså från PHP-binären, inte via omvägen browser + webbserver? Om variablerna kan skrivas ut från PHP-scriptet (och om det inte kommer med en massa fjantig header-info från PHP) kan du göra det med lynx. Exempelvis:
<?php
$foo = "bar";
$baz = "quux";
printf("foo=%s&baz=%s\n", urlencode($foo), urlencode($baz));
?>
För att posta outputen av detta till http://www.foo.bar/quux.php?blarg=baz kan du använda följande kommando:
php script.php | lynx -post_data [url]http://www.foo.bar/quux.php?blarg=baz[/url]
peronetMedlem sedan sep. 200193 inlägg Tack, precis vad jag leta efter!
Danke
peronetMedlem sedan sep. 200193 inlägg Iofs inte provat ännu, men men :)
peronetMedlem sedan sep. 200193 inlägg En annan sak,
kan man inte göra det utan att blanda in ev browsers t.ex lynx ..
kom på att det kan bli problem i framtiden..
Finns det inte något sätt att skicka data till en annan sida utan att behöva använda sig av en browser?
Choice2Medlem sedan sep. 200134 inlägg Jadu det du skulle kunna göra är väl att öppna en socket till den servern.
här har du lite info..
http://se.php.net/manual/en/function.fsockopen.php
Här har du även lite mer..
http://www.faqts.com/knowledge_base/view.phtml/aid/12039/fid/51
peronetMedlem sedan sep. 200193 inlägg Tjenare !
Nu har jag kommit en bra bit på vägen här.
function sendToHost($host,$method,$path,$data,$useragent=0)
{
if (empty($method))
$method = 'GET';
$method = strtoupper($method);
$fp = fsockopen($host,80);
if ($method == 'GET')
$path .= '?' . $data;
fputs($fp, "$method $path HTTP/1.1\n");
fputs($fp, "Host: $host\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: " . strlen($data) . "\n");
if ($useragent)
fputs($fp, "User-Agent: MSIE\n");
fputs($fp, "Connection: close\n\n");
if ($method == 'POST')
fputs($fp, $data);
while (!feof($fp))
$buf .= fgets($fp,128);
fclose($fp);
return $buf;
}
$dest = "JENNY";
$text = "testar";
$from = "070404040404";
sendToHost('www.webserver.se','post','/mottag.asp','dest=$dest&text=$text&from=$from');
problemet är att länken blir:
https://www.webserver.se/mottag.asp?dest=$dest&text=$text&from=$from
alltså, variablarna skrivs inte ut i länken.. vilket innebär att inga värden skickas vidare, när man kör scriptet så får man alltså EXAKT det jag skrev med..
Behöver hjälp nu, det blir inte som jag tänkt mig :(
Märk nu att det är till en ASP sida jag skickar, jag har inget med ASP sidan att göra utan ska endast skicka allt dit som en URL.
Hjälp mottages tacksamt.
AsterixMedlem sedan dec. 1999483 inlägg Ändra: sendToHost('www.webserver.se','post','/mottag.asp','dest=$dest&text=$text&from=$from');
Till: sendToHost('www.webserver.se','post','/mottag.asp',"dest=$dest&text=$text&from=$from");
peronetMedlem sedan sep. 200193 inlägg Funkade inget vidare med det..
:( mer tips?
SPiNMedlem sedan mars 20007 896 inlägg Testa följande:
sendToHost ( "www.webserver.se", "POST", "/mottag.asp", "dest=" . $dest . "&text=" . $text . "&from=" . $from );
Det ser rätt ut.
peronetMedlem sedan sep. 200193 inlägg Hummm nu fungerade det.. :)
Jag ber om ursäkt för att jag tog upp lite för mycket tid :)
tack tack tack o ha en fortsatt trevligt dag