0

A サーバーの .php ファイルを B サーバーの .php ファイルにインクルードし、A サーバーの Php ファイルから変数値を取得する

RPG(Report Program Generator、AS400)に接続されている別のサーバーにあるPHPファイルを呼び出そうとしています。Web サーバーからその PHP ファイルを呼び出し、変数と関数にアクセスしたいと考えています。

インクルードを試みましたが、機能しませんでした

RPG側にある.PHPファイルをパラメータで呼び出したいと思います。

A.php

 <?php

  include("http://10.1.1.12/a/file.php?email=aaa@a.com&name=abc");

  echo $a; //values from file.php
  ?>

file.php

<?php
 $email = $_REQUEST['email'];
 $name = $_REQUEST['name'];
 $a = "testing";
 echo $a;
 ?>
4

2 に答える 2

1

両方のサーバーで php アプリケーションを制御できる場合は、B で php インターフェースを構築することをお勧めします。これはかなり簡単に実行できます。基本的な実装は次のようになります。

A:

<?php
    $a = file_get_contents("http://10.1.1.12/a/interface.php?email=aaa@a.com&name=abc");
    $a = unserialize($a);
    print_r($a);
?>

B の interface.php:

<?php
    $email = $_REQUEST['email'];
    $name = $_REQUEST['name'];

    $result = doSomething($email, $name); //return an array with your data
    $result = serialize($result);

    echo $result;
?>

もちろん、ここには検証がないため、有効なデータのチェックを追加する必要があります。

サーバー間で文字エンコードの問題が発生するかどうかはわかりませんが、B.

また、同じネットワーク上の誰でもインターフェイスを使用できることに注意してください。いくつかのセキュリティ チェックを必ず実装してください。

URL が許可するよりも多くのパラメーター データを含むリクエストを送信する必要がある場合 (1024 文字だと思いますか?)、これが役立つ場合があります: PHP で POST リクエストを送信するにはどうすればよいですか?

于 2014-05-01T22:19:35.903 に答える
0

php.ini を使用して別のサーバーの応答を取得することはinclude、セキュリティ上の理由からデフォルトで無効になっています。ほとんどの場合、これを使用することはできません。file_get_contents代わりに使用してください。

あなたfile.phpのデータを使用してjson応答を作成し、それをエコーすることができます:

<?php
$email = $_REQUEST['email'];
$name = $_REQUEST['name'];
$a = "testing";

header('Content-type: application/json');
echo json_encode(
    'email' => $email,
    'name' => $name,
    'a' => $a
);
?>

そしてA.php、json 文字列を解析してデータを取得する必要があります。

<?php
$data = json_decode(file_get_contents('http://10.1.1.12/a/file.php?email=aaa@a.com&name=abc'));
echo $data['email'], ' ', $data['name'], ' ', $data['a'];
?>
于 2014-05-01T21:28:08.923 に答える