Bug #49013 [ReO]: SOAPClient interprets the parameters array incorrectly
| From: | cmb@php.net | Date: | Sun, 06 May 2018 16:28:22 +0000 |
| Subject: | Bug #49013 [ReO]: SOAPClient interprets the parameters array incorrectly | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-215132@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=49013&edit=1
ID: 49013
Updated by: cmb@php.net
Reported by: egos at biz-club dot biz
Summary: SOAPClient interprets the parameters array
incorrectly
Status: Re-Opened
Type: Bug
Package: SOAP related
Operating System: debian Lenny
PHP Version: 5.5.1
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
SoapClient::__call() ignores the array keys, analogously to
call_user_func_array(), so this is merely a doc issue.
Previous Comments:
------------------------------------------------------------------------
[2013-09-09 07:50:02] cweiske@php.net
I meant PHP 5.5.1, not 5.1.
------------------------------------------------------------------------
[2013-09-04 13:54:14] cweiske@php.net
We can reproduce the issue on PHP 5.1, see the files at http://p.cweiske.de/53:
SoapClient: http://p.cweiske.de/53/raw/soapclienttest.php
WSDL: http://p.cweiske.de/53/raw/test.wsdl
We give an associative array of parameters:
$arguments = array(
'password' => 'password-value',
'username' => 'username-value',
);
But the SOAP request has the values in wrong order:
<username xsi:type="xsd:string">password-value</username>
<password xsi:type="xsd:string">username-value</password>
------------------------------------------------------------------------
[2009-08-11 01:00:00] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
------------------------------------------------------------------------
[2009-08-03 15:17:46] jani@php.net
Please try using this snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
------------------------------------------------------------------------
[2009-07-22 07:20:03] egos at biz-club dot biz
Description:
------------
on Debian Lenny (php 5.2.6.dfsg.1-1+lenny3) i run the simple call.
please, take a look at var_dump of the parameters variable and at the generated xml code
Before xml is generated, it sorts the parameters, so that values loose bindings to the keys of the
array.
Reproduce code:
---------------
$client->__soapCall("updateMonitoring", $parameters);
var_dump($parameters);
echo "<br><hr>";
echo " REQUEST:\n" . $client->__getLastRequest() . "\n<br><hr>";
Expected result:
----------------
correct xml, based on $parameters. Here,s the var_dump of it $parameters I put there
["login"]=>
string(4) "***"
["password"]=>
string(32) "***"
["monitoring_id"]=>
string(5) "18700"
["plan_budget_total"]=>
string(2) "70"
["plan_budget_navigation"]=>
string(1) "0"
["plan_pay"]=>
string(2) "25"
["total"]=>
int(66)
["task_training"]=>
int(0)
["without_preliminary_examination"]=>
int(0)
["without_competition"]=>
int(0)
["city_0_59"]=>
int(0)
["city_60_100"]=>
int(0)
["city_101_110"]=>
int(0)
["city_111_120"]=>
int(0)
["city_121_130"]=>
int(0)
["city_131_140"]=>
int(0)
["city_141_150"]=>
int(1)
["city_151_160"]=>
int(1)
["city_161_170"]=>
int(2)
["city_171_180"]=>
int(0)
["city_181_190"]=>
int(2)
["city_191_200"]=>
int(2)
["city_201_210"]=>
int(5)
["city_211_220"]=>
int(3)
["city_221_230"]=>
int(1)
["city_231_240"]=>
int(8)
["city_241_250"]=>
int(1)
["city_251_260"]=>
int(4)
["city_261_270"]=>
int(2)
["city_271_280"]=>
int(5)
["city_281_290"]=>
int(5)
["city_291_300"]=>
int(3)
["city_301_310"]=>
int(10)
["city_311_320"]=>
int(3)
["city_321_330"]=>
int(2)
["city_331_340"]=>
int(2)
["city_341_400"]=>
int(1)
["country_0_59"]=>
int(0)
["country_60_100"]=>
int(0)
["country_101_110"]=>
int(0)
["country_111_120"]=>
int(0)
["country_121_130"]=>
int(0)
["country_131_140"]=>
int(0)
["country_141_150"]=>
int(0)
["country_151_160"]=>
int(0)
["country_161_170"]=>
int(0)
["country_171_180"]=>
int(0)
["country_181_190"]=>
int(0)
["country_191_200"]=>
int(0)
["country_201_210"]=>
int(1)
["country_211_220"]=>
int(1)
["country_221_230"]=>
int(0)
["country_231_240"]=>
int(0)
["country_241_250"]=>
int(1)
["country_251_260"]=>
int(0)
["country_261_270"]=>
int(0)
["country_271_280"]=>
int(0)
["country_281_290"]=>
int(0)
["country_291_300"]=>
int(0)
["country_301_310"]=>
int(0)
["country_311_320"]=>
int(0)
["country_321_330"]=>
int(0)
["country_331_340"]=>
int(0)
["country_341_400"]=>
int(0)
}
Actual result:
--------------
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="urn:abiturient" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:updateMonitoring><login
xsi:type="xsd:string">***</login><password
xsi:type="xsd:string">***</password><monitoring_id
xsi:type="xsd:int">18700</monitoring_id><plan_budget_total
xsi:type="xsd:int">70</plan_budget_total><plan_budget_navigation
xsi:type="xsd:int">0</plan_budget_navigation><plan_pay
xsi:type="xsd:int">25</plan_pay><total
xsi:type="xsd:int">66</total><task_training
xsi:type="xsd:int">0</task_training><without_preliminary_examination
xsi:type="xsd:int">0</without_preliminary_examination><without_competition
xsi:type="xsd:int">0</without_competition><city_341_400
xsi:type="xsd:int">0</city_341_400><country_341_400 xsi:typ!
e="xsd:int">0</country_341_400><city_331_340
xsi:type="xsd:int">0</city_331_340><country_331_340
xsi:type="xsd:int">0</country_331_340><city_321_330
xsi:type="xsd:int">0</city_321_330><country_321_330
xsi:type="xsd:int">0</country_321_330><city_311_320
xsi:type="xsd:int">1</city_311_320><country_311_320
xsi:type="xsd:int">1</country_311_320><city_301_310
xsi:type="xsd:int">2</city_301_310><country_301_310
xsi:type="xsd:int">0</country_301_310><city_291_300
xsi:type="xsd:int">2</city_291_300><country_291_300
xsi:type="xsd:int">2</country_291_300><city_281_290
xsi:type="xsd:int">5</city_281_290><country_281_290
xsi:type="xsd:int">3</country_281_290><city_271_280
xsi:type="xsd:int">1</city_271_280><country_271_280
xsi:type="xsd:int">8</country_271_280><city_261_270
xsi:type="xsd:int">1</city_261_270><country_261_270
xsi:type="xsd:int">4</country_261_270><city_251_260
xsi:type="xsd:int">2</city_251_260><country_251_260
xsi:type="xsd:int">5</country_251_260><city_241_250 xsi:typ!
e="xsd:int">5</city_241_250><country_241_250 xsi:type="xsd:int!
">3</country_241_250><city_231_240
xsi:type="xsd:int">10</city_231_240><country_231_240
xsi:type="xsd:int">3</country_231_240><city_221_230
xsi:type="xsd:int">2</city_221_230><country_221_230
xsi:type="xsd:int">2</country_221_230><city_211_220
xsi:type="xsd:int">1</city_211_220><country_211_220
xsi:type="xsd:int">0</country_211_220><city_201_210
xsi:type="xsd:int">0</city_201_210><country_201_210
xsi:type="xsd:int">0</country_201_210><city_191_200
xsi:type="xsd:int">0</city_191_200><country_191_200
xsi:type="xsd:int">0</country_191_200><city_181_190
xsi:type="xsd:int">0</city_181_190><country_181_190
xsi:type="xsd:int">0</country_181_190><city_171_180
xsi:type="xsd:int">0</city_171_180><country_171_180
xsi:type="xsd:int">0</country_171_180><city_161_170
xsi:type="xsd:int">0</city_161_170><country_161_170
xsi:type="xsd:int">0</country_161_170><city_151_160
xsi:type="xsd:int">0</city_151_160><country_151_160
xsi:type="xsd:int">1</country_151_160><city_141_150 xsi:type="xsd:in!
t">1</city_141_150><country_141_150
xsi:type="xsd:int">0</country_141_150><city_131_140
xsi:type="xsd:int">0</city_131_140><country_131_140
xsi:type="xsd:int">1</country_131_140><city_121_130
xsi:type="xsd:int">0</city_121_130><country_121_130
xsi:type="xsd:int">0</country_121_130><city_111_120
xsi:type="xsd:int">0</city_111_120><country_111_120
xsi:type="xsd:int">0</country_111_120><city_101_110
xsi:type="xsd:int">0</city_101_110><country_101_110
xsi:type="xsd:int">0</country_101_110><city_60_100
xsi:type="xsd:int">0</city_60_100><country_60_100
xsi:type="xsd:int">0</country_60_100><city_0_59
xsi:type="xsd:int">0</city_0_59><country_0_59
xsi:type="xsd:int">0</country_0_59></ns1:updateMonitoring></SOAP-ENV:Body></SOAP-ENV:Envelope>
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=49013&edit=1