bonjour j'ai un probleme pour afficher un service web
j'ai une methode d'un service web qui affiche l"ensemble des plats contenues dans ma table plat. mon code est le suivant

page qui utilise le service:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?php
include('lib/nusoap.php');
$service=new SoapClient("http://127.0.0.1/servicesweb/codes/Plateforme/restaurant1.php?wsdl");
 
$response = $service->getPlats();
print_r($response);
?>
Mon soucis c'est qu'il m'affiche:
stdClass Object ( )

la WSDL

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?xml version="1.0" encoding="ISO-8859-1"?>
<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
    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/" 
    xmlns:tns="http://localhost/" 
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
    xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://localhost/">
-
<types>
-
<xsd:schema targetNamespace="localhost">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
-
<xsd:complexType name="plats">
-
<xsd:all>
<xsd:element name="id" type="xsd:string" use="optionnal"/>
<xsd:element name="libelle" type="xsd:string" use="optionnal"/>
</xsd:all>
</xsd:complexType>
-
<xsd:complexType name="lesplats">
-
<xsd:complexContent>
-
<xsd:restriction base="SOAP-ENC:Array">
<xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:plats[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
</types>
<message name="getPlatsRequest"/>
-
<message name="getPlatsResponse">
<part name="plats" type="tns:plats"/>
</message>
-
<message name="addPlatRequest">
<part name="id" type="xsd:string"/>
<part name="libelle" type="xsd:string"/>
</message>
-
<message name="addPlatResponse">
<part name="return" type="xsd:int"/>
</message>
-
<portType name="MyWebservicePortType">
-
<operation name="getPlats">
<input message="tns:getPlatsRequest"/>
<output message="tns:getPlatsResponse"/>
</operation>
-
<operation name="addPlat">
<input message="tns:addPlatRequest"/>
<output message="tns:addPlatResponse"/>
</operation>
</portType>
-
<binding name="MyWebserviceBinding" type="tns:MyWebservicePortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
-
<operation name="getPlats">
<soap:operation soapAction="http://127.0.0.1/servicesweb/codes/Plateforme/restaurant1.php/getPlats" style="rpc"/>
-
<input>
<soap:body use="encoded" namespace="localhost" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
-
<output>
<soap:body use="encoded" namespace="localhost" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
-
<operation name="addPlat">
<soap:operation soapAction="http://127.0.0.1/servicesweb/codes/Plateforme/restaurant1.php/addPlat" style="rpc"/>
-
<input>
<soap:body use="encoded" namespace="localhost" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
-
<output>
<soap:body use="encoded" namespace="localhost" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
-
<service name="MyWebservice">
-
<port name="MyWebservicePort" binding="tns:MyWebserviceBinding">
<soap:address location="http://127.0.0.1/servicesweb/codes/Plateforme/restaurant1.php"/>
</port>
</service>
</definitions>

code côté serveur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
require_once ("lib/nusoap.php"); // Appel de nusoap
$NAMESPACE = 'localhost';
$server = new soap_server(); // Création d'un nouveau serveur
$server->configureWSDL('MyWebservice', $NAMESPACE); // Configuration du serveur
$server->wsdl->schemaTargetNamespace = $NAMESPACE; // Définition du schema target namespace
 
$server->wsdl->addComplexType(
'plats',
'complexType',
'struct',
'all',
'',
array(
'id'=> array('name'=>'id','type'=>'xsd:string','use'=>''),
'libelle'=> array('name'=>'author','type'=>'xsd:string','use'=>''),
)
);
 
 
$server->wsdl->addComplexType(
'lesplats',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:plats[]')
),
'tns:plats'
);
 
//fonctions pour manipuler les types
 
function getPlats()
{
// Connexion à notre base de données.
mysql_connect("localhost","root","") or die ("Could not connect");
mysql_select_db ("restaurant1") or die ("Could not select database");
 
// Requête MYSQL pour récupérer la liste de tous les commentaires et les stocker dans une variable result.
$request = "SELECT * FROM plats ORDER BY id DESC";
$result = mysql_query($request);
$tab=array();
// Nous parcourons le résultat et nous recopions les commentaires dans un nouveau tableau
while ($row = mysql_fetch_row($result))
{
$tab[] = array(
'id' => $row[0],
'libelle' => $row[1]
);
}
return $tab;
}
 
 
//ajout de plats
 
function addPlat($id, $libelle)
{
mysql_connect("localhost","root","") or die ("Could not connect");
mysql_select_db ("restaurant1") or die ("Could not select database");
 
$text = htmlentities($libelle, ENT_QUOTES);
 
// On ajoute le commentaire
$request =
"
INSERT INTO `plats` ( `id`, `libelle`)
VALUES ('$id', '$libelle')
";
mysql_query($request);
return 0;
}
 
//enregistrements des methodes
 
$server->register("getPlats", array(), array('plats'=>'tns:plats'), $NAMESPACE);
$server->register("addPlat", array('id'=>'xsd:string', 'libelle'=>'xsd:string'), array('return'=>'xsd:int'), $NAMESPACE);
 
//
 
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);