Адправіць зменную на іншы сервер і атрымаць вынік з PHP

OK Я хачу паслаць пераменны PHP на іншы сервер, гэта мой код, пераменная PHP з'яўляецца IP-адрас.

 header("Location: http://www.domainname.com/bean/data.php?ip=$ip");

У асноўным іншы сервер атрымае адрас IP-і вяртае пераменнае Апісанне таго, што я не ясна на гэта лепшы спосаб, каб вярнуць пераменнае апісанне назад на сервер.

код на старонцы data.php

 $ip =$_GET['ip'];
 include("ipology.class.php");
 $ipology = new ipology( array($ip) );
 $out = $ipology->out();
 foreach( $out as $ip ) {
    if( is_array( $ip ) ) {
       $address = implode( ", ", (array) $ip['address'] );
       $descr = implode( ", ", (array) $ip['descr'] );
       echo "$descr";
    }
 }
4
Вы не будзеце выкарыстоўваць загаловак() для гэтага
дададзена аўтар John Conde, крыніца
у залежнасці ад вашай сітуацыі, вам неабходна выканаць сервер або <�а HREF = "http://api.jquery.com/jQuery.get/" отн = "NOFOLLOW noreferrer"> кліента баку запыт на іншы сервер. Ні адзін з тых, хто адбываецца з кодам <> загаловак() .
дададзена аўтар Nick Andriopoulos, крыніца
у залежнасці ад вашай сітуацыі, вам неабходна выканаць сервер або <�а HREF = "http://api.jquery.com/jQuery.get/" отн = "NOFOLLOW noreferrer"> кліента баку запыт на іншы сервер. Ні адзін з тых, хто адбываецца з кодам <> загаловак() .
дададзена аўтар Nick Andriopoulos, крыніца
шукаць вакол завітка
дададзена аўтар Jonathan, крыніца
шукаць вакол завітка
дададзена аўтар Jonathan, крыніца
Як вам выканаць перанакіраванне. Праверце адказы, вы павінны выкарыстоўваць скручаны або file_get_contents ().
дададзена аўтар V.Vachev, крыніца

10 адказы

Калі вырасьце сервер можа выкарыстоўваць (як адзначае Філ Cross) file_get_contents або завітак:

$response = file_get_contents('http://www.domainname.com/bean/data.php?ip='.$ip);
print_r( $response );

Аддалены сервер можа выкарыстоўваць:

if ( isset( $_GET['ip'] ) && $_GET['ip'] ) {
  # do description lookup and 'echo' it out:
}

Выкарыстоўваючы загаловак ( «месца: ххх»); функцыя, што вы па сутнасці робіце прымушае PHP на зыходным серверы, каб адказаць 302 перасылак загалоўка, які будзе пасылаць кліенту на выдалены сервер, але няма ніякага «вярнуцца» з выдаленага сервера на які адбываецца.

2
дададзена
Прывітанне Дзякуй, я дадаў змесціва старонкі data.php (дададзена да зыходнага паведамленні) да # зрабіць somehting тут раздзел, але ён нічога не вяртае?
дададзена аўтар user1691024, крыніца

Калі вырасьце сервер можа выкарыстоўваць (як адзначае Філ Cross) file_get_contents або завітак:

$response = file_get_contents('http://www.domainname.com/bean/data.php?ip='.$ip);
print_r( $response );

Аддалены сервер можа выкарыстоўваць:

if ( isset( $_GET['ip'] ) && $_GET['ip'] ) {
  # do description lookup and 'echo' it out:
}

Выкарыстоўваючы загаловак ( «месца: ххх»); функцыя, што вы па сутнасці робіце прымушае PHP на зыходным серверы, каб адказаць 302 перасылак загалоўка, які будзе пасылаць кліенту на выдалены сервер, але няма ніякага «вярнуцца» з выдаленага сервера на які адбываецца.

2
дададзена
Прывітанне Дзякуй, я дадаў змесціва старонкі data.php (дададзена да зыходнага паведамленні) да # зрабіць somehting тут раздзел, але ён нічога не вяртае?
дададзена аўтар user1691024, крыніца

Гэты загаловак будзе проста перанакіраваць карыстача на гэтым сайце. Вы хочаце выкарыстоўваць нешта накшталт file_get_contents() </а> калі ваш сервер канфігурацыя дазваляе для аддаленага доступу да файлаў.

If not, look into

cURL

Вы можаце атрымаць змесціва ад вяртання завітка і апрацоўваць іх такім чынам.

1
дададзена

Гэты загаловак будзе проста перанакіраваць карыстача на гэтым сайце. Вы хочаце выкарыстоўваць нешта накшталт file_get_contents() </а> калі ваш сервер канфігурацыя дазваляе для аддаленага доступу да файлаў.

If not, look into

cURL

Вы можаце атрымаць змесціва ад вяртання завітка і апрацоўваць іх такім чынам.

1
дададзена

Вы можаце выкарыстоўваць два метаду:

Калі толькі выхад мэтавай старонкі з'яўляецца апісанне, то вы можаце выкарыстоўваць

$description = file_get_contents("http://target.page?ip=xxx.xxx.xxx.xxx");

Калі няма, то вы можаце выкарыстоўваць завітак, як гэта:

// Create Post Information
$vars = array(
'ip'=>'xxx.xxx.xxx.xxx',
'some_other_info'=>'xxx'
);


// urlencode the information if needed
$urlencoded = http_build_query($vars);

if( function_exists( "curl_init" )) { 
    $CR = curl_init();
    curl_setopt($CR, CURLOPT_URL, 'http://distantpage');
    curl_setopt($CR, CURLOPT_POST, 1);
    curl_setopt($CR, CURLOPT_FAILONERROR, true);
    curl_setopt($CR, CURLOPT_POSTFIELDS, $urlencoded );
    curl_setopt($CR, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($CR, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($CR, CURLOPT_FAILONERROR,true);


    $result = curl_exec( $CR );
    $error = curl_error ( $CR );


   //if there's error
    if( !empty( $error )) {
            echo $error;
            return;
    }

    curl_close( $CR );

}

parse_str($result, $output);
echo $output['description']; //get description
1
дададзена
Прывітанне Дзякуй, але я не ўпэўнены, як я хацеў бы дадаць змесціва маёй старонкі data.php, каб гэта? і не разумею, як вы атрымаеце рэха-вываду
дададзена аўтар user1691024, крыніца
ваш data.php трэба вывесці нешта накшталт: апісанне = апісанне і іншае ... і other_info = іншая інфармацыя і іншыя рэчы .. , а затым вы можаце паўтарыць $ вываду [ «апісанне»] або $ выхадныя [ 'other_info']
дададзена аўтар user2050393, крыніца

Вы можаце выкарыстоўваць два метаду:

Калі толькі выхад мэтавай старонкі з'яўляецца апісанне, то вы можаце выкарыстоўваць

$description = file_get_contents("http://target.page?ip=xxx.xxx.xxx.xxx");

Калі няма, то вы можаце выкарыстоўваць завітак, як гэта:

// Create Post Information
$vars = array(
'ip'=>'xxx.xxx.xxx.xxx',
'some_other_info'=>'xxx'
);


// urlencode the information if needed
$urlencoded = http_build_query($vars);

if( function_exists( "curl_init" )) { 
    $CR = curl_init();
    curl_setopt($CR, CURLOPT_URL, 'http://distantpage');
    curl_setopt($CR, CURLOPT_POST, 1);
    curl_setopt($CR, CURLOPT_FAILONERROR, true);
    curl_setopt($CR, CURLOPT_POSTFIELDS, $urlencoded );
    curl_setopt($CR, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($CR, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($CR, CURLOPT_FAILONERROR,true);


    $result = curl_exec( $CR );
    $error = curl_error ( $CR );


   //if there's error
    if( !empty( $error )) {
            echo $error;
            return;
    }

    curl_close( $CR );

}

parse_str($result, $output);
echo $output['description']; //get description
1
дададзена
Прывітанне Дзякуй, але я не ўпэўнены, як я хацеў бы дадаць змесціва маёй старонкі data.php, каб гэта? і не разумею, як вы атрымаеце рэха-вываду
дададзена аўтар user1691024, крыніца
ваш data.php трэба вывесці нешта накшталт: апісанне = апісанне і іншае ... і other_info = іншая інфармацыя і іншыя рэчы .. , а затым вы можаце паўтарыць $ вываду [ «апісанне»] або $ выхадныя [ 'other_info']
дададзена аўтар user2050393, крыніца

Гэты фрагмент кода выкарыстоўвае JSON, каб вярнуць значэнне, гэта дазволіць вам вярнуць некалькі значэнняў у будучыні, калі вашыя патрабаванні пашырыць.

Я звычайна выкарыстоўваю xml замест JSON, але, здаецца, што яна выходзіць з моды :-P

Дайце мне ведаць, калі гэта працуе для вас.

<?php

$output = file_get_contents("http://www.domainname.com/bean/data.php?ip=$ip");

// This is what would go in data.php
$output = '{ "ip": "127.0.0.1", "description": "localhost" }';

$parsed = json_decode($output);

echo "Description for $parsed->ip is $parsed->description\n";

// var_dump($parsed);
0
дададзена

Гэты фрагмент кода выкарыстоўвае JSON, каб вярнуць значэнне, гэта дазволіць вам вярнуць некалькі значэнняў у будучыні, калі вашыя патрабаванні пашырыць.

Я звычайна выкарыстоўваю xml замест JSON, але, здаецца, што яна выходзіць з моды :-P

Дайце мне ведаць, калі гэта працуе для вас.

<?php

$output = file_get_contents("http://www.domainname.com/bean/data.php?ip=$ip");

// This is what would go in data.php
$output = '{ "ip": "127.0.0.1", "description": "localhost" }';

$parsed = json_decode($output);

echo "Description for $parsed->ip is $parsed->description\n";

// var_dump($parsed);
0
дададзена

Ну, калі мы выкажам здагадку, што data.php вяртае толькі апісанне вы можаце выкарыстоўваць

echo file_get_contents("http://www.domainname.com/bean/data.php?ip=".$ip);

Ён павінен рабіць гэтую працу, але з выкарыстаннем CURL з'яўляецца лепшым варыянтам.

0
дададзена

Ну, калі мы выкажам здагадку, што data.php вяртае толькі апісанне вы можаце выкарыстоўваць

echo file_get_contents("http://www.domainname.com/bean/data.php?ip=".$ip);

Ён павінен рабіць гэтую працу, але з выкарыстаннем CURL з'яўляецца лепшым варыянтам.

0
дададзена