/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
http post behind the scenes
Fra : T M


Dato : 21-10-01 22:57

Hejsa

Har et lille "sjovt" problem... vil gerne kunne lave en http-post til et
eksternt cgi-script på en anden server, fra php.. (en get er ikke muligt) Og
derefter parse outputtet fra dette cgi-script

Kan det lade sig gøre? Nogle forslag?

/ Thomas




 
 
Thor Dreier (21-10-2001)
Kommentar
Fra : Thor Dreier


Dato : 21-10-01 23:59

"T M" <t@nowhere.net> wrote in message
news:mtHA7.6472$5v1.495015@news010.worldonline.dk...
> Har et lille "sjovt" problem... vil gerne kunne lave en http-post til et
> eksternt cgi-script på en anden server, fra php.. (en get er ikke muligt)
Og
> derefter parse outputtet fra dette cgi-script
> Kan det lade sig gøre? Nogle forslag?

Noget i retningen af følgende:

$send = "variabel1=værdi1&variabel2=værdi2";
$host = "wwwwwwww.noget.dk";
$path = "/test.pl";

if($connection = fsockopen($host, 80))
{

$input = "";
$output = "POST $path HTTP/ 1.1\n";
$output .= "Host: $host\nConnection: close\n";
$output .= "Content-Type: application/x-www-form-urlencoded\n";
$output .= "Content-Length: " . strlen($send) . "\n\n";
$output .= "$send\n\n";

fputs($connection, $output);
while(!feof($connection))
$input .= fgets($connection, 4096);
fclose($connection);
}


Nu skulle det du får retur fra cgi-scriptet gerne ligge i $input, lige til
at parse.

--
Hej hej hej, jeg hedder Kaj.



Peter Brodersen (22-10-2001)
Kommentar
Fra : Peter Brodersen


Dato : 22-10-01 01:02

On Mon, 22 Oct 2001 00:58:37 +0200, "Thor Dreier" <news@cheater.dk>
wrote:

> $output = "POST $path HTTP/ 1.1\n";

Benævn HTTP/1.0 i stedet for. Ellers risikerer du, at outputtet er
chunked, inkl. hex-angivelser af chunk-størrelser undervejs.

--
- Peter Brodersen

Thor Dreier (22-10-2001)
Kommentar
Fra : Thor Dreier


Dato : 22-10-01 01:32

"Peter Brodersen" <professionel@nerd.dk> wrote in message
news:emJA7.6493$5v1.505531@news010.worldonline.dk...
> Benævn HTTP/1.0 i stedet for. Ellers risikerer du, at outputtet er
> chunked, inkl. hex-angivelser af chunk-størrelser undervejs.

Hvis scriptet er skrevet uden at overholde standarderne kan du vel i teorien
ikke godt risikere at det er chunked selvom man angiver HTTP/1.0?

--
Øl er gud, fad er vor.



Peter Brodersen (22-10-2001)
Kommentar
Fra : Peter Brodersen


Dato : 22-10-01 16:40

On Mon, 22 Oct 2001 02:32:07 +0200, "Thor Dreier" <news@cheater.dk>
wrote:

>Hvis scriptet er skrevet uden at overholde standarderne kan du vel i teorien
>ikke godt risikere at det er chunked selvom man angiver HTTP/1.0?

Som regel er det webserveren, der står for at sende "chunks" og
størrelsesangivelser; scriptet hælder bare løbende data tilbage til
webserveren.

I forbindelse med at submitte til PHP- og ASP-sider har jeg oplevet,
at serveren netop undlader at give chunked, hvis man siger, at man
blot er en lille HTTP/1.0-klient, hvilket har løst "problemet". Jeg
kender ikke HTTP/1.1 godt nok til at vide om man specifikt kan anmode
om ikke at få et chunked output. På den anden side er man nok
alligevel ikke særlig HTTP/1.1-kapabel, hvis man ikke i første omgang
kan håndtere et chunked output :)

--
- Peter Brodersen

Christian Joergensen (22-10-2001)
Kommentar
Fra : Christian Joergensen


Dato : 22-10-01 16:34

T M <t@nowhere.net> wrote:

> Har et lille "sjovt" problem... vil gerne kunne lave en http-post til et
> eksternt cgi-script på en anden server, fra php.. (en get er ikke muligt)
> Og derefter parse outputtet fra dette cgi-script

<http://razor.dk/php/functions/#post> måske :)

--
Christian Jørgensen / Do not look into the laser with remaining eye!
http://www.razor.dk /


Peter Brodersen (23-10-2001)
Kommentar
Fra : Peter Brodersen


Dato : 23-10-01 02:23

On Sun, 21 Oct 2001 23:56:58 +0200, "T M" <t@nowhere.net> wrote:

> Har et lille "sjovt" problem... vil gerne kunne lave en http-post til et
>eksternt cgi-script på en anden server, fra php.. (en get er ikke muligt) Og
>derefter parse outputtet fra dette cgi-script

Du har fået diverse, brugbare svar, men såfremt, du har råderet over
den PHP-server, du skal bruge, og fortsat skal lave en del
HTTP-baserede stunts, kan jeg varmt anbefale cURL. Det løser en del
problemer fremfor at man selv skal til at lave diverse headers, huske
at bede om at close forbindelsen, tage højde for chunks, huske
content-length, og så fremdeles - for blot at tage et par af de
relevante eksempler, der har været i den tråd. Flere tilfælde kunne
være noget med at skulle kunne klare cookies, SSL, FTP, m.m.

cURL findes på: http://curl.haxx.se/

--
- Peter Brodersen

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408942
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste