Hello,

 

I am fairly new to the XML-RPC and ran into my first problem. At the moment I am just testing some custom functions. One of my functions receives and returns an array. When it run the script i get the following error:

 

<b>Warning</b>:  htmlspecialchars() expects parameter 1 to be string, array given in <b>/home/duracell/www/xmlrpc/includes/xmlrpc.inc</b> on line <b>1204</b>

 

You could see the error on http://www.martinwalter.at/xmlrpc/array.php. I am using xmlrpc-1.0.99.2 on Apache and PHP 4.2.3.

Please see my code below:

 

Client:

<?php

include('includes/xmlrpc.inc');

 

$client = new xmlrpc_client('/xmlrpc/server.php', 'www.martinwalter.at', 80);

$client -> setDebug(1);

 

$message = new xmlrpcmsg('examples.returnArray', array(new xmlrpcval(array(new xmlrpcval(1, $xmlrpcInt), new xmlrpcval(2, $xmlrpcInt), new xmlrpcval(3, $xmlrpcInt)), $xmlrpcArray)));

$result = $client -> send($message);

?>

 

Server:

<?php

include('includes/xmlrpc.inc');

include('includes/xmlrpcs.inc');

 

$errorCounter = 0;

$errorMessage = '';

 

$returnArray_sig = array(array($xmlrpcArray, $xmlrpcArray));

$returnArray_doc = 'Passes a given Array to the client.';

 

function returnArray($xmlrpcMessage)

{

            global $xmlrpcerruser;

            global $errorCounter, $errorMessage;

           

            $returnMessage = $xmlrpcMessage -> getParam(0);

           

            if ($returnMessage -> kindOf() != 'array')

            {

                        $errorMessage = 'Wrong argument type detected. Required: Array';

                        $errorCounter++;

            }

           

            if ($errorCounter > 0)

            {

                        $response = new xmlrpcresp(0, $xmlrpcerruser, $errorMessage);

            }

            else

            {

                        $elements = array();

                       

                        for ($i = 0; $i < $returnMessage -> arraysize(); $i++)

                        {

                                   $member = $returnMessage -> arraymem($i);

                                   $value = $member -> scalarval();

                       

                                   $elements[] = new xmlrpcval($value, $xmlrpcInt);

                        }

                       

                        $response = new xmlrpcresp(new xmlrpcval($elements, $xmlrpcArray));

            }

           

            return $response;

}

 

$returnString_sig = array(array($xmlrpcString, $xmlrpcString));

$returnString_doc = 'Passes a given String to the client.';

 

$dispatchMap = array('examples.returnArray' => array('function' => 'returnArray', 'signature' => $returnArray_sig, 'docstring' => $returnArray_doc));

$server = new xmlrpc_server($dispatchMap);

?>

 

I hope you have an idea how to get this fixed? Thanks in advance!

 

Best regards,

Martin Walter

 

mailto: [EMAIL PROTECTED]

_______________________________________________
phpxmlrpc mailing list
[EMAIL PROTECTED]
http://lists.usefulinc.com/cgi-bin/mailman/listinfo/phpxmlrpc


Reply via email to