2010-04-27 13 views
5

Ok, więc używam funkcji AJAX Jquery'ego i mam problem z przekazaniem adresu URL z adresem http. Mam nadzieję, że "zdobędę" wartości GET i wyślę je na inny adres URL - tak: lokalny plik php zaczyna przekazywać wartości GET, które z kolei przekazują wartości GET do innego adresu URL.Jak przekazać wartości GET do innego adresu URL w php? Przesyłanie wartości GET

Może curl jest odpowiedzią? Nie wiem To musi być bardzo krótka odpowiedź, którą znam.

pseudokod:

//retrieve the GET values 
$var retrieve [GET] 

//passing it to another url 
send get values to url ($var, url_address) 

edit: To krzyż rozwiązanie dla skryptów JavaScript.

+0

Może to tylko ja, ale nie mogę uzyskać tego pytania całkowicie. Czy jest to pytanie JS lub PHP? Co widzi użytkownik podczas wykonywania wszystkich tych czynności? –

+0

Użytkownik nic nie widzi, jest to ajax. Wartości są wysyłane za pomocą GET. Jednak jQery.ajax nie lubi http. Próbuję przekazać te wartości do usługi [inny URL], której używam. Ma sens? Przeczytaj o funkcji jQuery.ajax tutaj i jak to się nie podoba "http" http://api.jquery.com/jQuery.ajax/ – michael

+0

AJAX to dokładnie HTTP. Ponieważ nie ma innego protokołu dla sieci. domyśl. I użytkownik musi coś zobaczyć. Przynajmniej ta sama strona, na której zostaje. Co się dzieje, aby wysłać tę prośbę, jquery lub php? Jeśli to PHP - dlaczego to całe tło jquery? –

Odpowiedz

5

Jeśli chcesz przekierować użytkownika:

header('Location: http://example.com/page.php?' . http_build_query($_GET, '', '&')); die(); 

Jeśli jednak chcesz po prostu pobrać stronę, użyj tego:

file_get_contents('http://example.com/page.php?' . http_build_query($_GET, '', '&')); 
0

header("Location: http://otherurl.com/page?var=" . $var);

+0

która nie działa dobrze. Otrzymuję błąd 302 w konsoli Firebug. – michael

+1

Konkatenacja odbywa się za pomocą operatora '.' w PHP. – alex

+0

-1, to nie przekazuje w ogóle wartości GET. –

0

Jeśli chcesz wykluczyć param GET, podobnie unset() przed użyciem http_build_query(). Dobrym pomysłem może być dodanie białej listy z parametrami $_GET, które chcesz przekazać.

header('Location: http://example.com/new?' . http_build_query($_GET)); 
    exit; 

. Nie zapomnij o exit().

+0

jesteś pewien, że obiekt JS zrozumiałby taką odpowiedź? –

+0

@ Col. Shrapnel Nie w 100% zrozumiałem pytania, ale mam nadzieję, że sblom był na dobrej drodze. – alex

0

Got it! Dzięki Alix Axel!

echo file_get_contents('http://example.com/page.php?'. http_build_query($_GET, '', '&')); 
+0

Możesz użyć '&', aby połączyć parametry GET podczas żądania przez 'file_get_contents()'. Wydaje mi się, że musisz je zakodować tylko przy wyświetlaniu ich na stronie. – alex

+0

Okazuje się, że jest to problem z skryptami cross-domain występujący w javascript. Yahoo ma artykuł na ten temat, używa cURL - trochę bardziej skomplikowanego. http://developer.yahoo.com/javascript/howto-proxy.html Ta linia kodu jest prostym serwerem php. – michael

Powiązane problemy