2010-04-27 9 views
5

Ok, also benutze ich Jquery's AJAX-Funktion und es hat Probleme, eine URL mit einer http-Adresse zu übergeben. Ich hoffe also, die GET-Werte zu "bekommen" und sie an eine andere URL zu senden - also: eine lokale PHP-Datei beginnt, GET-Werte zu übergeben, die wiederum die GET-Werte an eine andere URL weiterleitet.Wie können Sie GET-Werte an eine andere URL in PHP übergeben? GET value forwarding

Vielleicht ist Locke die Antwort? Ich weiß es nicht. Es muss eine sehr kurze Antwort sein, die ich kenne.

Pseudocode:

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

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

edit: Es ist eine Cross-Scripting-Lösung für JavaScript.

+0

Vielleicht ist es nur ich, aber ich kann die Frage nicht vollständig bekommen. Ist es JS oder PHP Frage? Was sieht der Benutzer, während alle diese Aktionen ausgeführt werden? –

+0

Der Benutzer sieht nichts, es ist Ajax. Werte werden mit GET gesendet. Allerdings mag jQery.ajax nicht http. Ich versuche also, diese Werte an den Dienst [eine andere URL] weiterzuleiten, den ich verwende. Macht Sinn? lesen Sie hier über die jQuery.ajax Funktion und wie es nicht "http" http://api.jquery.com/jQuery.ajax/ – michael

+0

AJAX ist genau HTTP. Da gibt es kein anderes Protokoll für das Web. Stelle dir das vor. Und Benutzer müssen etwas sehen. Zumindest die gleiche Seite, auf der er bleibt. Nun, was geht, um diese Anfrage, jQuery oder PHP zu senden? Wenn es PHP ist - warum all dieser Jquery-Hintergrund dann? –

Antwort

5

Wenn Sie den Benutzer umleiten möchten:

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

Wenn aber Sie wollen einfach nur die Seite holen, verwenden:

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

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

+0

das scheint nicht sehr gut zu funktionieren. Ich erhalte einen Fehler von 302 in Firebugs Konsole. – michael

+1

Die Verkettung erfolgt mit dem '.'-Operator in PHP. – alex

+0

-1, dies leitet die GET-Werte überhaupt nicht weiter. –

0

Wenn Sie eine GET param ausschließen möchten, nur unset() vor http_build_query() verwenden. Es könnte auch eine gute Idee sein, eine Whitelist von $_GET Parametern hinzuzufügen, die Sie weitergeben möchten.

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

Docs. Vergessen Sie nicht exit().

+0

Sind Sie sicher, JS-Objekt würde eine solche Antwort verstehen? –

+0

@ Col. Schrapnell Ich habe die Frage nicht zu 100% verstanden, aber ich hoffe, dass sblom auf dem richtigen Weg war. – alex

0

Verstanden! Danke Alix Axel!

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

Sie können '' '' einfach verwenden, um die GET-Parameter bei der Anforderung über 'file_get_contents()' zu verknüpfen. Ich denke, Sie müssen sie nur codieren, wenn Sie sie auf der Seite wiedergeben. – alex

+0

Es stellt sich heraus, dass es sich um ein domainübergreifendes Skriptproblem handelt, das bei JavaScript auftritt. Yahoo hat einen Artikel darüber, sie benutzen cURL - ein bisschen komplizierter. http://developer.yahoo.com/javascript/howto-proxy.html So ist diese Codezeile ein einfacher PHP-Proxy. – michael

Verwandte Themen