2010-11-24 7 views
0

Я запускаю прокси-сервер, поэтому я могу выполнить запрос ajax на данные через параметры URL-адреса. Прокси-сервер PHP выглядит следующим образом:Пропустить свойство url через прокси

<?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); 
} 
?> 

Я бил прокси с помощью AJAX, которая заканчивается добавлением параметра, как:

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

Так запрос, как песочнице/proxy.php заказа = 123

Как я могу захватить эти данные (заказ = 123) и добавить их к переменной $ daurl (http://thesite.com/form.asp?order=123), чтобы я мог заставить прокси-сервер фактически что-то вернуть?

Это девственная территория для меня, так что вы не можете чрезмерно объяснить =)

ответ

2

Простой.

$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

Фантастический! Огромное спасибо. – Zac 2010-11-24 18:38:00

0

$_SERVER['QUERY_STRING'] должен содержать порядок = 123, так что вы можете изменить $ daurl следующим образом:

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

Делая это таким образом передаст все переданное в строке запроса. Однако, если вы хотите только часть заказа вы можете использовать $ _GET [ «порядок»], вы можете сделать что-то вроде:

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

$order будет -1, если заказ не был принят в строке запроса, иначе он будет иметь значение.

Смежные вопросы