2010-04-27 22 views
5

Bien, entonces estoy usando la función AJAX de Jquery y tiene problemas para pasar una URL con una dirección http. Así que espero "obtener" los valores GET y enviarlos a otra URL, así que: un archivo php local comienza a pasar los valores GET, que a su vez reenvía los valores GET a otra url.¿Cómo se pueden pasar valores GET a otra URL en php? GET value forwarding

¿Quizás curl es la respuesta? No lo sé. Debe ser una respuesta muy corta que sé.

seudo código:

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

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

edición: Es una solución de guiones a través de JavaScript.

+0

Puede ser solo yo, pero no puedo obtener la pregunta por completo. ¿Es JS o PHP? ¿Qué ve el usuario mientras se realizan todas estas acciones? –

+0

El usuario no ve nada, es ajax. Los valores se envían con GET. Sin embargo, a jQery.ajax no le gusta http. Así que estoy tratando de reenviar esos valores al servicio [otra URL] que estoy usando. ¿Tiene sentido? lea sobre la función jQuery.ajax aquí y cómo no le gusta "http" http://api.jquery.com/jQuery.ajax/ – michael

+0

AJAX es exactamente HTTP. Como no hay otro protocolo para la web. Imagínate. Y el usuario tiene que ver algo. Al menos la misma página donde se queda. Bueno, ¿qué pasa para enviar esta solicitud, jquery o php? Si es PHP, ¿por qué todo este fondo jquery entonces? –

Respuesta

5

Si desea redirigir al usuario:

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

Sin embargo, si lo que desea es buscar la página, utilice la siguiente:

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

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

+0

que no parece funcionar muy bien. Estoy obteniendo un error 302 en la consola de Firebug. – michael

+1

La concatenación se realiza con el operador '.' en PHP. – alex

+0

-1, esto no reenvía los valores GET en absoluto. –

0

Si desea excluir un parámetro GET, justo antes de usar unset()http_build_query(). También podría ser una buena idea incluir una lista blanca de los parámetros $_GET que le gustaría pasar.

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

Docs. No te olvides de exit().

+0

¿Estás seguro de que el objeto JS entendería tal respuesta? –

+0

@Col. Metralla No entendí al 100% la pregunta, pero esperaba que Sblom estuviera en el camino correcto. – alex

0

¡Gracias! Gracias Alix Axel!

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

Podrías usar '&' para unir los parámetros GET al solicitarlo a través de 'file_get_contents()'. Creo que solo necesitas codificarlos cuando los haces eco en la página. – alex

+0

Resulta que es un problema de scripts de dominio cruzado que ocurre con javascript. Yahoo tiene un artículo al respecto, usan cURL-- un poco más complicado. http://developer.yahoo.com/javascript/howto-proxy.html Así que esta línea de código es un simple proxy php. – michael