2010-04-27 9 views
5

Ok, quindi sto usando la funzione AJAX di Jquery e sta avendo problemi a passare un URL con un indirizzo http. Quindi spero di "ottenere" i valori GET e di inviarli a un altro URL, quindi: un file php locale inizia i valori GET passati, che a loro volta inoltrano i valori GET a un altro URL.Come puoi passare i valori GET a un altro URL in PHP? Ottieni l'inoltro del valore

Forse arricciare è la risposta? Non lo so. Deve essere una risposta molto breve, lo so.

pseudo codice:

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

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

Modifica: Si tratta di una soluzione di scripting cross per JavaScript.

+0

Potrebbe essere solo io, ma non riesco a ottenere la domanda completamente. È una domanda JS o PHP? Cosa vede l'utente mentre vengono eseguite tutte queste azioni? –

+0

L'utente non vede nulla, è ajax. I valori vengono inviati con GET. Comunque a jQery.ajax non piace http. Quindi sto cercando di inoltrare quei valori al servizio [un altro URL] che sto usando. Ha senso? leggi qui la funzione jQuery.ajax e come non piace "http" http://api.jquery.com/jQuery.ajax/ – michael

+0

AJAX è esattamente HTTP. Poiché non esiste un altro protocollo per il web. vai a capire. E l'utente deve vedere qualcosa. Almeno la stessa pagina in cui rimane. Bene, cosa serve per inviare questa richiesta, jquery o php? Se è PHP, perché tutto questo sfondo jquery allora? –

risposta

5

Se si desidera reindirizzare l'utente:

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

Se invece si vuole solo prendere pagina, utilizzare questo:

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

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

+0

che non sembra funzionare molto bene. Sto ottenendo un errore 302 nella console di Firebug. – michael

+1

La concatenazione viene eseguita con l'operatore '.' in PHP. – alex

+0

-1, questo non inoltra i valori GET affatto. –

0

Se si desidera escludere un param GET, proprio unset() prima di utilizzare http_build_query(). Potrebbe anche essere una buona idea includere una whitelist dei parametri $_GET che vorresti passare.

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

Docs. Non dimenticare di exit().

+0

sei sicuro che l'oggetto JS comprenderebbe una simile risposta? –

+0

@Col. Shrapnel I non ha capito al 100% la domanda, ma speravo che sblom fosse sulla strada giusta. – alex

0

Got it! Grazie Alix Axel!

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

Si potrebbe semplicemente usare '&' per unire i parametri GET quando si richiede tramite 'file_get_contents()'. Penso che tu debba solo codificarli quando li fai eco alla pagina. – alex

+0

Risulta che si tratta di un problema di scripting tra domini che si verifica con javascript. Yahoo ha un articolo a riguardo, usano cURL-- un po 'più complicato. http://developer.yahoo.com/javascript/howto-proxy.html Quindi questa linea di codice è un semplice proxy php. – michael

Problemi correlati