IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Problème en PHP avec SOAP et EASYPHP 5.3


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Par défaut Problème en PHP avec SOAP et EASYPHP 5.3
    Bonjour à tous.

    Voila ce qui se passe :

    Pour un site web ou j'aimerais implémenter derrière un bouton un service web qui me renverrait une valeur.
    j'ai d'abord voulut commencer par des exemples sur le web. malheureusement je me retrouve avec l'erreur suivante :

    Fatal error: Class 'SoapServer' not found in C:\Program Files\EasyPHP-5.3.9\www\client_moteur_test.php on line 7

    La partie cliente php
    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
     
    <?php
     
    // première étape : désactiver le cache lors de la phase de test
    ini_set("soap.wsdl_cache_enabled", "0");
     
    // lier le client au fichier WSDL
    //if (!extension_loaded('soap')){
    $clientSOAP = new SoapClient('http://127.0.0.1:8080/HelloYou.wsdl',true);
     
     
    // executer la methode getHello
    echo $clientSOAP->getHello('Marc','Assin');
     
    ?>
    la partie 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
     
    <?php
     
    // première étape : désactiver le cache lors de la phase de test
    ini_set("soap.wsdl_cache_enabled", "0");
     
    // on indique au serveur à quel fichier de description il est lié
    $serveurSOAP = new SoapServer('HelloYou.wsdl');
     
    // ajouter la fonction getHello au serveur
    $serveurSOAP->addFunction('getHello');
     
    // lancer le serveur
    if ($_SERVER['REQUEST_METHOD'] == 'POST')
     
    {
    	$serveurSOAP->handle();
    }
    else
    {
    	echo 'désolé, je ne comprends pas les requêtes GET, veuillez seulement utiliser POST';
    }
     
    function getHello($prenom, $nom)
    {
    	return 'Hello ' . $prenom . ' ' . $nom;
    }
    ?>
    et enfin la partie wsdl
    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
     
    <?xml version="1.0"?>
    <!-- partie 1 : Definitions -->
    <definitions 	name="HelloYou" 
    		targetNamespace="urn:HelloYou" 
    		xmlns:typens="urn:HelloYou" 
    		xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    		xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    		xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
    		xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
    		xmlns="http://schemas.xmlsoap.org/wsdl/">
     
    	<!-- partie 2 : Types-->
    <types>
        	<xsd:schema 	xmlns="http://www.w3.org/2001/XMLSchema" 
    			targetNamespace="urn:HelloYou">
     	</xsd:schema>
     </types> 
     
     
    	<!-- partie 3 : Message -->
    	<message name="getHelloRequest">
    		<part name="prenom" type="xsd:string"/>
    		<part name="nom" type="xsd:string"/>
    	</message>
    	<message name="getHelloResponse">
    		<part name="return" type="xsd:string"/>
    	</message>
     
    	<!-- partie 4 : Port Type -->
    	<portType name="HelloYouPort">
    		<!-- partie 5 : Operation -->
    		<operation name="getHello">
    			<input message="typens:getHelloRequest"/>
    			<output message="typens:getHelloResponse"/>
    		</operation>
    	</portType>
     
    	<!-- partie 6 : Binding -->
    	<binding name="HelloYouBinding" type="typens:HelloYouPort">
    		<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    		<operation name="getHello">
    			<soap:operation soapAction="HelloYouAction"/>
    			<input name="getHelloRequest">
    				<soap:body 	use="encoded" 	
    						namespace="urn:HelloYou" 	
    						encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    			</input>
    			<output name="getHelloResponse">
    				<soap:body 	use="encoded" 	
    						namespace="urn:HelloYou" 
    						encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    			</output>
    		</operation>
    	</binding>
     
    	<!-- partie 7 : Service -->
    	<service name="HelloYouService">
    		<documentation>Retourne une phrase simple </documentation>
    		<!-- partie 8 : Port -->
    		<port name="HelloYouPort" binding="typens:HelloYouBinding">
    			<soap:address location="http://soap.minimonde.org/HelloYou.Server.php5"/>
    		</port>
    	</service>
    </definitions>
    voila y'a tout je comprend pas l’élément que j'ai loupé tout en sachant que dans php. ini la dll ( extension=php_soap.dll) est bien libérer

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    l'extension n'est pas installéé

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Par défaut problème extensions ?
    Merci de votre réponse, je me doute que l'extension n'est pas installé mais laquelle, comment la retrouver, ou la téléchargez ? merci de vos réponses

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par ib.sissoko Voir le message
    Merci de votre réponse, je me doute que l'extension n'est pas installé mais laquelle, comment la retrouver, ou la téléchargez ? merci de vos réponses
    est ce que le le dll est dans le dossier des extensions ?

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Par défaut suite
    oui la dll est dans le dossier d'extensions .
    Par contre dans le php.ini du sous repertoire apache de easyphp l'extension était toujours commenter donc je retire le ; et CTRL+S.

    Maintenant le message d'erreur est différent :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'c:\Program Files\EasyPHP-5.3.9\www\Webservices.wsdl' : Extra content at the end of the document in C:\Program Files\EasyPHP-5.3.9\www\Client_simple.php:4 Stack trace: #0 C:\Program Files\EasyPHP-5.3.9\www\Client_simple.php(4): SoapClient->SoapClient('c:\Program File...') #1 {main} thrown in C:\Program Files\EasyPHP-5.3.9\www\Client_simple.php on line 4
    apparemment il n'arriverait pas a lire mon fichier wsdl, j'ai essaye avec plusieurs exemples et tutos rien y fait.
    Est ce un pbm de conf au nivaeu d'easyphp ou une mauvais manip de ma part

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    ton xml semble être incorrecte, utilise un librairie comme Zend SOAP pour générer le wsdl ça sera plus simple

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL-5.6] Problème installation Joomla avec MySQL et EasyPHP
    Par chastel dans le forum Installation
    Réponses: 0
    Dernier message: 10/09/2013, 23h41
  2. problème fonction php avec connexion postgreSQL
    Par roblescriso dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 04/06/2008, 18h02
  3. Problème installation php avec Apache
    Par DreammyKetty dans le forum Apache
    Réponses: 3
    Dernier message: 15/05/2008, 21h54
  4. [MySQL] problème fonction php avec LAST_INSERT_ID()
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/12/2006, 09h51
  5. Réponses: 1
    Dernier message: 30/10/2005, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo