Gå til innhold

Hente info fra ekstern side


Anbefalte innlegg

Jeg har et case hvor jeg skal hente info fra 2 eksterne sider. Problemet er at jeg ønsker å skjule informasjon som blir sendt fra min server til de 2 eksterne sidene. Her er casen:

 

Min server

http://min.tld/

åpner siden

http://ekstern.tld/?brukernavn=**&passord=**&page=side.php&var=foo

og blir derfra redirecta til

http://min.tld/side.php?var=foo&transaksjonsid=1234

(side.php og var=foo sendes til eksern server som lager redirect av det).. da igjen skal jeg hente informasjon fra siden

http://ekstern.tld/?brukernavn=**&passord=**&transaksjonsid=1234&status=ok

Denne siden vil vise var2:foo2 som ren tekst. Det er ikke noen redirect tilbake til min server der, med andre ord. Men jeg skal likevel bare hente infoen var2:foo2 og vise det på min egen server.

 

Den siste delen er ganske enkelt løst ved å bruke file_get_contents(url).. men den første sliter jeg. Jeg ønsker som sagt å skjule at siden hentes, men likevel få informasjon fra redirect-url som kommer fra ekstern.tld ved oppslag.

 

Jeg har ingen mulighet til å endre noe på den eksterne serveren, og transaksjonsid er annerledes for hvert oppslag.

 

Ganske tungvint forklart sikkert.. men bare spørr :)

Endret av kev
Lenke til kommentar
Videoannonse
Annonse

Curl kan settes til å følge redirects automatisk.

PHP
<?php

$ch curl_init('http://ekstern.tld/snip');

//Follow header Location:... (redirects)

culr_setopt ($chCURLOPT_FOLLOWLOCATIONtrue);

//To prevent infinite redirect loop.

culr_setopt ($chCURLOPT_MAXREDIRS2);

//return content instead of echoing it out when calling curl_exec.

culr_setopt ($chCURLOPT_RETURNTRANSFERtrue);

$content curl_exec($ch);

//Last used url.

$url curl_getinfo($chCURLINFO_EFFECTIVE_URL);

?>

Koden er ikke testet.

 

Videre parsing av url kan gjøres ved bruk av parse_url() og parse_str().

 

Er ikke sikker på at jeg forstod hele problemet, men dette bør løse redirect problemet i alle fall.

Lenke til kommentar

Takk for tipset :)

 

Men jeg fant nettopp ut at den første URL til ekstern.tld må hentes fra klienten, og kan ikke hentes fra serveren, så jeg må sende brukernavn og passord likevel (via header(location: url)).

 

Men jeg vet det i alle fall til en senere lignende case da :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...