begin process at 2012 05 31 04:35:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

php5 + soap


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

php5 + soap

mardi 7 février 2006 à 10:29:01 | php5 + soap

B4loo

Bonjour,
étant débutant en php (quelques notions de VB) je rencontre un problème avec l'utilisation de SOAP (php5).

Mon problème est que je dois génerer une requête SOAP avec une entête de ce genre :

<soap:Header>
    <Agency xmlns="namespace">
      <Code>string</Code>
      <Culture>string</Culture>
    </Agency>
    <Partner xmlns="namespace">
      <Name>string</Name>
      <Password>string</Password>
    </Partner>
 </soap:Header>

Après plusieurs tuto et quelques doc je vois qu'il existe un constructeur 'new soapHeader()' qui s'ecrit :
$head = new soapHeader ("le name space", "le nom de l entete", "le contenue de l entete")

Mon probleme est qu' avec cet appel je n'arrive pas à generer mon entête comme voulu

Ex:
$entete = '<soap:Header>
    <Agency xmlns="http://schemas.costacrociere.com/WebAffiliation">
      <Code>string</Code>
      <Culture>string</Culture>
    </Agency>
    <Partner xmlns="http://schemas.costacrociere.com/WebAffiliation">
      <Name>string</Name>
      <Password>string</Password>
    </Partner>
  </soap:Header>';

$head = new soapHeader("monnamspace","entete",$entete);
cet appel donne ca :
<soap:Header>
<entete>
    <Agency xmlns="http://schemas.costacrociere.com/WebAffiliation">
      <Code>string</Code>
      <Culture>string</Culture>
    </Agency>
    <Partner xmlns="http://schemas.costacrociere.com/WebAffiliation">
      <Name>string</Name>
      <Password>string</Password>
    </Partner>
</entete>
  </soap:Header>

Ou "entete" est le second paramaetre de "soapHeader()", j ai aussi essayer sous forme de tableau, d'objet ...
Rien a faire je m en sort pas ...
j ai aussi vu k'il y a la fonction "setSoapHeaders()" mais encore une fois sans résultata pour moi ...

Si quelqu'un pouvait me donner un coup de main, m'aiguiller sur une idée  ce serai super cool !

merci d'avance =)

Ps : j'ai essayé et ca fonctionne avec NuSoap ("en local) mais le serveur sur lequel je dois poser le script n'est pas en local et n' pas NuSoap ....




'one day programming kicks my ass ' =]-
mardi 7 février 2006 à 10:47:03 | Re : php5 + soap

malalam

Administrateur CodeS-SourceS
Hello,

heu, il faudra que tu expliques mieux quel est ton problème. L'extension Soap dont tu parles n'est pas en standard dans php, mais je suppose que tu as installé ce qu'il faut...?

Ensuite, SOAP, c'est un flux xml, c'est tout. Et générer un flux xml en php n'est pas sorcier.

Enfin, après avoir lu un peu la doc sur cette extension que je n'ai jamais utilisée, je te suggèrerais d'utiliser __soapCall () en conjonction avec ton soapHeader ().

[ Lien ]
mardi 7 février 2006 à 11:01:27 | Re : php5 + soap

B4loo

slt malalam,

avec php 5 l'extension soap devient un standard : [ Lien ] donc pas besoin d'instalation particulière.
Ensuite Soap n'est pas qu'un flux XML mais est basé comme : [ Lien ]


J'utilise deja la fontion __soapCall qui permet "d'executer une requête", son cartouche :

class SoapClient {

mixed __soapCall ( string function_name [, array arguments [, array options [, mixed input_headers [, array &output_headers]]]] )

}

String function_name = Le nom de la fontction a appelé : OK
En cas d'utilisation de SOAP en mode WSDl , ce qui est mon cas, seul ce paramètre est necessaire.

Mais cela ne résolu pas mon probleme de "formatage" d'entête ...

Pour rappel voila le format d'entête que j aimerai avoir :
<Agency xmlns="http://schemas.costacrociere.com/WebAffiliation">
      <Code>string</Code>
      <Culture>string</Culture>
    </Agency>
    <Partner xmlns="http://schemas.costacrociere.com/WebAffiliation">
      <Name>string</Name>
      <Password>string</Password>
    </Partner>
  </soap:Header>

Merci quand même ;)

'one day programming kicks my ass ' =]-
mardi 7 février 2006 à 11:49:27 | Re : php5 + soap

malalam

Administrateur CodeS-SourceS
C'est pas ce qu'il y a de marqué sur la doc, mais si tu le dis, je te crois :-) (c'est un standard, mais pas fourni en standard au complet)

Et je sais ce qu'est SOAP, j'ai pas mal travaillé avec. Et je te garantis qu'on s'en sort très bien sans l'extension concernée. Et je ne comprends toujours pas ton problème pour construire ton header : c'est un flux xml...

Si ça peut t'aider, il y a quelques threads et articles interessants sur le net :
[ Lien ]
[ Lien ]
mardi 7 février 2006 à 12:16:10 | Re : php5 + soap

B4loo

Por construire une "enveloppe" soap de ce genre :

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <enteteaaaa  </entete>
  </soap:Header>
  <soap:Body>
    <Fonction xmlns="nameSpace" />
  </soap:Body>
</soap:Envelope>

voici le code :
//on creer le client
$client=new soapclient('adresse du fichier wsdl');

//on creer le Header
$head = new soapHeader("nameSpace", "entete","aaaa");

//appel de la foction voulu en locurence celle-ci n'a pas de parametre
$client->__soapCall('Fonction', $tableauDeParam,$tableauDoptions,$head);

Seulement ce que j aimerai c'est ca :

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <
enteteaaaa  </entete>
   <entete2bbbb  </entete2>
  </soap:Header>
  <soap:Body>
    <Fonction xmlns="nameSpace" />
  </soap:Body>
</soap:Envelope>



......?......?.....


Ps : example de code avec NuSoap qui fonctionne tres bien chez moi
$client=new soapclient('...../..../Export.asmx');
$client->setHeaders('
 <Agency xmlns="nameSpace">
      <Code>xxxxx</Code> 
      <Culture />    
  </Agency>
  <Partner xmlns="nameSpace">
      <Name>xxxxx</Name>
      <Password>xxxxx</Password>
   </Partner>');
 
//Fonction a apeller,Parametre,Namespace,SoapAction
$result=$client->call('ExportPrice',"","","SoapAction");

'one day programming kicks my ass ' =]-
mardi 7 février 2006 à 13:10:48 | Re : php5 + soap

GRenard

Perso, je n'ai pas vu de modification sur www.php.net/soap depuis un bon bout étant traducteur.


Cherchez, Essayez et Testez avant de Poser une question !
[ Lien ]
mardi 7 février 2006 à 13:23:33 | Re : php5 + soap

malalam

Administrateur CodeS-SourceS
ahhhh,

mais __soapCall prend une variable de "type" mixed pour les headers en input :

mixed __soapCall ( string function_name [, array arguments [, array options [, mixed input_headers [, array &output_headers]]]] )

Ce qui veut dire que tu dois logiquement pouvoir mettre un tableau de headers.
mardi 7 février 2006 à 14:58:31 | Re : php5 + soap

B4loo

ok, kool pour les tableaux mais c'est la mon problème, je ne sais pas comment arriver à ce resultat :

<soap:Header>
   <entete>
        <code>
aaaa </code>
       <code2>bbb</code2>
   </
entete>
   <entete2
       <code>bbbb </code>
       <code2>ccc</code2> 
   </
entete2>
 </soap:Header>


'one day programming kicks my ass ' =]-
mardi 7 février 2006 à 15:45:59 | Re : php5 + soap

B4loo

Ok j ai trouvé ;)

je post dans le cas ou quelqu'un ai le mm pb :

//On creer deux nouveau header
$head2 = new SoapHeader ("NameSpace", "Partner", array('Name'=>xxxx,'Password'=>xxxx),true);
$head1 = new SoapHeader ("NameSpace", "Agency", array('Code'=>xxx,'Culture'=>'xxxx'), true);

//on en fait un tableau
$head4 = array($head1,$head2);

//on creer le client
$client = new SoapClient("URL du WSDl");

//Appel de la fonction avec le tableau d' header
$response = $client->__soapCall("Fonction",array(),array(),$head4);


le resultat du header :
<soap:Header>
   <Agency>
        <code>
aaaa </code>
       <Culture>bbb</Culture>
   </
Agency>
   <Partner
       <Name>bbbb </Name>
       <Password>ccc</Password> 
   </
Partner>
</soap:Header>

Merci pour votre aide !

'one day programming kicks my ass ' =]-



Cette discussion est classée dans : string, entete, php5, soap, soapheader


Répondre à ce message

Sujets en rapport avec ce message

envoi de mail en php5 [ par maxparo ] Bonjour, J'ai un problème pour envoyer un mail à partir d'un formulaire en php. Mon serveur de mail est postfix et d'après l'hébergeur la fonction ma Erreur syntaxe sql : mystère [ par daporoty ] Bonjour, J'ai une erreur sql sur une requète ou il n'y a pas de problème !? Récupération des données d'un formulaire et update de la table : [code= Problème avec erreur 403 hébergé par 1&1 [ par situsavais ] Bonjour à tous, J'ai créé un site et j'ai un problème avec l'erreur 403. J'ai pourtant testé tous les CHMOD possible, actuellement je suis en 777 (je Probleme de To_String [ par Genildf ] Bonjour je suis tout nouveau en php et je souhaite faire ma combobox en fonction du contenu de ma base SQL le problème c'est que n'arrive pas a défini Un truc que je capte pas [ par vxr888 ] Salut, J'essaye de travailler avec des csv mais la fonction fgetcsv me pose un soucis. Dans les FAQ il est dit : array fgetcsv ( resource $handle [, SOAP et XML [ par j3r3m067 ] Salut à tous, Voilà je dois générer une chaine XML qui doit après j'intégrer dans une enveloppe SOAP, mon problème est que je suis limité à la lib P Utilisation de la fonction mysql_escape_string( ) [ par aljessy ] Je n'arrive pas à utiliser la commande mysql_escape_string(). en effet j'essaye de sécurisé l'accès à ma base de donnée voici la syntaxe que je tape entete HTML dans Include - méthode [ par ju0123456789 ] Bonjour, Tout d'abord je m'excuse si ma question n'est pas dans la bonne rubrique, je ne savais pas laquelle choisir. Petite question toute simple, j Class 'SoapClient' not found in [ par Amineworkgroup ] Bonjour, Afin d'interroger un service web, j'ai développé un bout de code qui marche sans problème en local, une fois que je le met en ligne il do PHP5 Installation du package PEAR (Ubuntu) [ par begueradj ] Azul à tous, J'aimerais savoir comment je pourrais installer et configurer le package PEAR (PHP5, sous Ubuntu 10.04) afin que je puisse implémenter u


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales