2010-11-24 12 views
0

Je cours un proxy afin que je puisse effectuer une requête ajax sur les données via les paramètres d'URL. Le php proxy ressemble:Passer la propriété url via un proxy

<?php 
header('Content-type: application/xml'); 
$daurl = 'http://thesite.com/form.asp'; 
$handle = fopen($daurl, "r"); 
if ($handle) { 
    while (!feof($handle)) { 
     $buffer = fgets($handle, 4096); 
     echo $buffer; 
    } 
    fclose($handle); 
} 
?> 

Je frappais la procuration ajax qui finit par ajouter un paramètre comme:

$j.ajax({ 
      type: 'GET', 
      url: 'sandbox/proxy.php', 
      data: 'order=' + ordervalue, 
      dataType: 'html', 
      success: function(response) { 
      $j("#result").html(response); 
      } 
     }); 

Ainsi, la demande est comme bac à sable/proxy.php order = 123

Comment puis-je récupérer ces données (order = 123) et les ajouter à la variable $ daurl (http://thesite.com/form.asp?order=123) afin que le proxy puisse renvoyer quelque chose?

C'est un territoire vierge pour moi, donc vous ne pouvez pas trop expliquer =)

Répondre

2

Simple.

$daurl = 'http://thesite.com/form.asp'; 

//if you only want 'order': 
if(isset($_GET['order'])) 
    $daurl .= '?order=' . $_GET['order']; 

//if you want the entire query string: 

if(strlen($_SERVER['QUERY_STRING']) > 0) 
    $daurl .= '?' . $_SERVER['QUERY_STRING']; 
... 
+0

Fantastique! Merci beaucoup. – Zac

0

$_SERVER['QUERY_STRING'] doit contenir l'ordre = 123, de sorte que vous pouvez changer $ daurl comme suit:

$daurl = 'http://thesite.com/form.asp'; 
if($_SERVER['QUERY_STRING'] != ""){ 
    $daurl.='?'.$_SERVER['QUERY_STRING']; 
} 

En procédant ainsi, transférera tout ce qui a été passé sur la chaîne de requête. Par contre, si vous voulez juste la partie de la commande, vous pouvez utiliser $ _GET [ « pour »], vous voudrez peut-être faire quelque chose comme:

$order = isset($_GET['order']) ? $_GET['order'] : -1; 

$order sera -1 si l'ordre n'a pas été transmis dans la chaîne de requête, sinon, il aura la valeur.