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

C Discussion :

Passage d'un client SOAP de PHP à C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Par défaut Passage d'un client SOAP de PHP à C
    Bonjour à tous j'ai développé un Webservice assez simple en PHP.
    Le client envoie 3 données au service qui analyse celles-ci, va lire sa BDD et renvoie au client une réponse 1 ou 0 en fonction des données que celui-ci lui avait envoyé précédement. SOAP me permet donc de faire une bête fonction POST.

    Mais bon voilà j'ai dévelloppé tout ceci pour me familiariser avec SOAP. Je souhaiterai garder mon programme côté serveur en PHP mais par contre je souhaiterai transformer mon programme client PHP en code C pour Linux.

    Voici le code de mon 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
    <?php
        include('../lib/nusoap.php');
     
        $serveur = new soap_server;
        $serveur->debug_flag=false;
        $serveur->register('CA');
     
        // FONCTION DE CONTROLE D'ACCES
        function CA($num_site, $num_term, $num_carte)
        {
            // CONNEXION AU SERVEUR SQL
            require("connect_bdd.php");
     
            // SELECTION D'UNE BASE
            $db_selected = mysql_select_db('ca', $link);
            if (!$db_selected)
            {
               die('Impossible de sélectionner la base de données : ' . mysql_error());
            }
     
            // REQUETE PERMETTANT DE COMPTER LE NOMBRE D'ENTREE CORRESPONDANT A LA COMBINAISON
            $requete = mysql_query("SELECT COUNT(num_carte) AS nb FROM autorisation WHERE
                num_site='$num_site' AND num_term='$num_term' AND num_carte='$num_carte'");
     
            if (!$requete)
            {
            die('Requête invalide : ' . mysql_error());
            }
     
            // RECUPERATION DU RESULTAT DE LA REQUETE
            $resultat = mysql_result($requete,0);
     
            // DEDUCTION DU DROIT D'ACCES EN FONCTION DU RESULTAT        
            if ($resultat==0)
            {
               $droit=0;
            }
            else
            {
               $droit=1;
            }
     
            // RETOURNE LE DROIT
            return "La <b>carte $num_carte</b> tente de badger sur le <b> terminal $num_term</b> du 
                <b>site $num_site</b>. <br><br> <b>Son droit d'accès est $droit</b>.";
     
            // FERME LE SERVEUR
            mysql_close($link);
        }
     
        $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)? $HTTP_RAW_POST_DATA : '';
     
        // ENVOI LE RETOUR DE LA FONCTION AU CLIENT
        $serveur->service($HTTP_RAW_POST_DATA);
    ?>
    Et voici le code de mon client que je souhaite transformer en un client SOAP en C :
    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
    <?
        include('../lib/nusoap.php');
     
        $client = new soapclient('http://127.0.0.1/Webservice_soap/CA/service_CA.php');
        $err = $client->getError();
     
        if ($err)
        {
            echo '<h2>Erreur de construction</h2><pre>' . $err . '</pre>';
        }
        else
        {
            // ENREGISTREMENT DES PARAMETRES
            $parametres = array('site'=>$_GET['num_site'],'terminal'=>$_GET['num_term'],'num_carte'=>$_GET['num_carte']);
            // APPEL LA FONCTION DU SERVEUR AVEC LES PARAMETRES 
            $recup = $client->call('CA', $parametres);
            // AFFICHE LE RESULTAT PROVENANT DU SERVEUR
            print $recup;
        }
    ?>
    Voilà, donc mon client se contente d'envoyer 3 variables au service ($_GET['num_site'], $_GET['num_term'] et $_GET['num_carte']). Ici les données proviennent d'un formulaire, c'était pour faire un test, mais imaginons pour faire le prog en C que les 3 valeurs des 3 variables sont inscrites en dur dans le code.

    Si quelqu'un peut m'aider à déveleppoer se client SOAP en C pour linux ca serait super cool.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    Pour commencer, il faudrait une librairie C qui utilise le XML pour faire du SOAP et parser le BODY de ton message SOAP.
    Ensuite, trois getValue(), un print et c'est terminé

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Par défaut
    Ok merci !

    Et tu pense à quoi comme librairie ?

  4. #4
    Membre éclairé Avatar de je®ome
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut
    salut, va voir ici si tu veux, jpoense que tu devrait trouver

    http://xmlrpc-c.sourceforge.net/

    il y a également des examples (à gauche)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 170
    Par défaut
    Ok merci, mais ce lien parle de xml-rpc et non soap, c'est différent.

    Moi j'aurai souhaité utiliser le protocol soap.

  6. #6
    Membre éclairé Avatar de je®ome
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut
    désolé, je n'avais pas fais gaffe

Discussions similaires

  1. [Web Service] Implémentation d'un client SOAP (lib PHP)
    Par takoha dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/11/2010, 14h22
  2. Passage d'un client Soap de php en c++
    Par nounowa dans le forum C++
    Réponses: 3
    Dernier message: 16/09/2009, 12h44
  3. [Web Service] SOAP serveur PHP client J2EE
    Par mejdi331 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 12/02/2009, 03h08
  4. [SOAP] - Client/Serveur (C#/php)
    Par daguero dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 18/04/2008, 11h55
  5. [Web Service][SOAP] Client soap PHP et C#
    Par zulot dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 19/04/2007, 10h53

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