I'm writing a web service using NuSOAP in PHP. To test it, I have written both a server and a client. On the server end, I register the function like so:
$server->register(
"testFunction",
array("param1" => "xsd:string", "param2" => "xsd:string"),
array("result" => "xsd:string"),
"http://localhost/testApp"
);
And on the client looks like this:
require_once("./lib/nusoap.php");
$client = new soapclient("http://localhost/testApp/server.php");
$function = $_GET["function"];
unset($_GET["function"]);
$result = $client->call($function, $_GET);
echo "<pre>". print_r($result, true) ."</pre>";
When I call it like
http://localhost/testApp/client.php?function=testFunction¶m1=value1¶m2=value2
it works fine, but if I switch param1 and param2 and say
http://localhost/testApp/client.php?function=testFunction¶m2=value2¶m1=value1
then param1 gets the value value2
and param2 gets the value value1
. So obviously, it just goes by the order of the parameters, not the names.
I figured that since I registered the function with specific parameter names and then called the function, specifying those parameter names, that they would be assigned accordingly.
Am I missing something? What's the point of specifying the parameter names if they will just be thrown out and assigned in whatever order you entered them? Is there a way to make it so that I can enter the parameters in any order and have them map correctly?