Fri 17 Aug 2007 08:58:11 PM UTC, original submission:
The code for soap_parser constructs a PHP expression then evals it.
Unfortunately, this seems broken here when I'm testing :
I'm using Sympa's SOAP server with authenticateAndRun to call complexLists method for an email, and get the following expression in return :
<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><authenticateAndRunResponse xmlns="urn:sympasoap"><listInfo soapenc:arrayType="xsd:ur-type[2]" xsi:type="soapenc:Array"><item><homepage xsi:type="xsd:string">http://sid.picoforge.test/wws/info/essai1</homepage><listAddress xsi:type="xsd:string">essai1@sid.picoforge.test</listAddress><subject xsi:type="xsd:string">essai1 list</subject></item><item><homepage xsi:type="xsd:string">http://sid.picoforge.test/wws/info/essai1-developers</homepage><listAddress xsi:type="xsd:string">essai1-developers@sid.picoforge.test</listAddress><subject xsi:type="xsd:string">essai1-developers list</subject></item></listInfo></authenticateAndRunResponse></soap:Body></soap:Envelope>
Which results in trying to eval the following expression :
$response = CreateObject("phpgwapi.soapval","authenticateAndRunResponse", "struct" , array( CreateObject("phpgwapi.soapval","listInfo", "Array" , array( CreateObject("phpgwapi.soapval","item", "SOAPStruct" , array( CreateObject("phpgwapi.soapval","homepage", "string" , "http://sid.picoforge.test/wws/info/essai1"), CreateObject("phpgwapi.soapval","listAddress", "string" , "essai1@sid.picoforge.test"), CreateObject("phpgwapi.soapval","subject", "string" , "essai1 list")) ), CreateObject("phpgwapi.soapval","item", "SOAPStruct" , array( CreateObject("phpgwapi.soapval","homepage", "string" , "http://sid.picoforge.test/wws/info/essai1-developers"), CreateObject("phpgwapi.soapval","listAddress", "string" , "essai1-developers@sid.picoforge.test"), CreateObject("phpgwapi.soapval","subject", "string" , "essai1-developers list")) )) )) );
That's probably too complex :(
I think I'll try and use the soap client in PHP5 instead of the phpGroupware one
|