0

リモートサーバー上の関数に送信するセッションに配列を保存しました。これらの値を使用して、リモート データベースに入力しています。私の問題は、配列が送信されていることですが、空です。

送信されています

  <?php 
session_start();
require_once('lib/nusoap.php');
$blah = $_SESSION['blah'];

$client = new nusoap_client( 'http://myserver.com/datatest.php'  );

$response = $client->call('myfunction', $blah); 

?>

リモートサーバーで:

  <?php 
require_once('lib/nusoap.php');  





$server = new soap_server(); 





$server->register('myfunction');  





function myfuction ($blah) 

{ 
//MY DB CONNECTIONS
$row = $blah;



$count = count($row);

for($i=0;$i<=$count-1;$i++){

$value1 = '8';
$item = $i+1;

$first = $row[$i]['first'];
$second = $row[$i]['second'];


$time = date("His");
$month = date("m"); 
$day = date("d"); 
$year = date("y"); 
$julian = juliantojd($month, $day, $year);

$sql = "INSERT INTO `MYTABLE` (value1, item, first, second, time, julian) VALUES ('$value1', '$item', '$first', '$second', '$time', '$julian')";

return $code_showing_query;

}
}
?>

これを実行すると、サーバーに設定した変数 (Item、Value1 など) がデータベースに挿入されますが、最初と 2 番目に送信する変数は空です。

送信している $blah 配列を返すことができ、値とともに返されます。もちろん、セッションはまだブラウザにありますが、リモートサーバーに行くと失われます。私は次のことを試しました:(うまくいかないと確信していましたが、試しました)

 <?php 
$blah = $_SESSION['blah'];
$blah = serialize($blah); 
$blah = base64_encode($blah);

//AT THE REMOTE SERVER
$blah = base64_decode($blah);
$blah = unserialize($blah);
?>

基本的に、セッションから取得している配列をリモートサーバーに送信するために、セッションから離れて見つける必要があるため、セッションに関連付けられていません。これは注文システムであり、最終的な注文をリモートの iSeries に送信する必要があるため、この時点までにすべてをセッションに保持する必要があります。

私はそれが単純なことであることを知っています...私がやったことのないこと、および/または助けてくれてありがとう

4

1 に答える 1

0

わかりました、問題が見つかりました...それは簡単なことでした。

サーバー上の関数への呼び出し:

$response = $client->call('myfunction', $blah); 

これでなければなりません:

$response = $client->call('myfunction', Array($blah)); 

私は多次元配列を送信していましたが、サーバーが探していた配列は次のような基本的な配列でした:

Array ( [something] => 5555 [something] => 5555 [something] => 5555) 

しかし、私はこれを送っていました:

Array ( [0] => Array ( [something] => 5555 [something] => 5555 [something] => 5555 ) ) 

サーバーは次を見ました:

Array ( [0] => Array // it ignored the rest of the array

これを変更した後、$response = $client->call('myfunction', Array($blah));

サーバーは現在、次のものを探しています。

Array ( [0] => Array ( [something] => 5555 [something] => 5555 [something] => 5555 ) ) 
于 2013-07-06T22:56:42.103 に答える