webForumDet fria alternativet

POST grej..

10 svar · 591 visningar · startad av peronet

peronetMedlem sedan sep. 200193 inlägg
#1

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
#2

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
#3

Tack, precis vad jag leta efter!

Danke

peronetMedlem sedan sep. 200193 inlägg
#4

Iofs inte provat ännu, men men :)

peronetMedlem sedan sep. 200193 inlägg
#5

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
#6

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
#7

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
#8

Ä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
#9

Funkade inget vidare med det..

:( mer tips?

SPiNMedlem sedan mars 20007 896 inlägg
#10

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
#11

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

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)