PEAR is archived and read-only

This mirror preserves historical PEAR package releases and metadata so existing references remain available.

Home » Web Services » XML_RPC » Bug #10186

Error in function serializeval($o)

Details

Submitted2007-02-26 07:44 UTC
Fromivi dot spam at gmail dot com
Assigneddanielc
StatusBogus
PackageXML_RPC
PHP Version4.4.4
OSWindows
Roadmaps(Not assigned)

Comments

[2007-02-26 07:44 UTC] ivi dot spam at gmail dot com

Description:
------------
XML RPC not working.
Problem in serializeval with Array data
Problem in serializeval function in "if (!is_object($o) || empty($o->me) || !is_array($o->me)) {
return '';
}"

/**
* @return string the data in XML format
*/
function serializeval($o)
{
if (!is_object($o) || empty($o->me) || !is_array($o->me)) {
return '';
}
$ar = $o->me;
reset($ar);
list($typ, $val) = each($ar);
return '<value>' . $this->serializedata($typ, $val) . "</value>\n";
}

-----------------------------------------

After small changes like

/**
* @return string the data in XML format
*/
function serializeval($o)
{
if (!is_object($o) || empty($o->me) || !is_array($o->me)) {
return '<value>' . $o . "</value>\n";
}
$ar = $o->me;
reset($ar);
list($typ, $val) = each($ar);
return '<value>' . $this->serializedata($typ, $val) . "</value>\n";
}

Working.

[2007-02-27 11:06 UTC] ivi dot spam at gmail dot com

function returnArray($params)
{
$arr = array();
$arr[] = 10;
$arr[] = 11;
$arr[] = 12;

$val = new XML_RPC_Value($arr,'array');
return new XML_RPC_Response($val,0);

}

$serverArr = array();
$serverArr['returnArray']['function']= 'returnArray';

$server = new XML_RPC_Server($serverArr,1);

-----------------------------------------

?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value><array>
<data>
</data>
</array></value>
</param>
</params>
</methodResponse>

--------------------------
After changes

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value><array>
<data>
<value>10</value>
<value>11</value>
<value>12</value>
</data>
</array></value>
</param>
</params>
</methodResponse>