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 等...)插入到数据库中,但我发送的第一个和第二个是空的。

我可以返回我发送的 $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 回答