Précédent   Forum du club des développeurs et IT Pro > PHP > Bibliothèques et frameworks > Services Web
Services Web Forum d'entraide pour les services Web en PHP, qui permettent de créer et de consommer facilement des webservices (génération de WSDL etc.). Exemples : SOAP, NuSOAP, REST, SCA-SDO... Avant de poster -> Cours webservices
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/04/2012, 19h44   #1
abdou-wt
Invité de passage
 
Homme
Etudiant
Inscription : avril 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : avril 2012
Messages : 27
Points : 4
Points : 4
Par défaut appeler un code CGI depuis une page PHP

Bonjour tous le monde,

j'ai une question : est-ce que c'est possible d'appeler un code CGI depuis une page PHP avec les web services ?

merci
abdou-wt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2012, 01h19   #2
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
si ton cgi propose un web service oui
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2012, 21h47   #3
abdou-wt
Invité de passage
 
Homme
Etudiant
Inscription : avril 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : avril 2012
Messages : 27
Points : 4
Points : 4
Citation:
Envoyé par stealth35 Voir le message
si ton cgi propose un web service oui
Comment un code cgi propose t-il un web service ? pour moi c'est une classe qui fait un traitement précis

Et comment ce fait l'appel ?
abdou-wt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2012, 22h55   #4
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
en faisant du SOAP, du REST n'importe quel type web service
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2012, 09h58   #5
abdou-wt
Invité de passage
 
Homme
Etudiant
Inscription : avril 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : avril 2012
Messages : 27
Points : 4
Points : 4
peux-tu me donner un exemple complet d'un serveur CGI et un client PHP utilisant les web services ?

merci bcp.
abdou-wt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2012, 10h55   #6
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
quelle est l'appli CGI ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2012, 15h23   #7
abdou-wt
Invité de passage
 
Homme
Etudiant
Inscription : avril 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : avril 2012
Messages : 27
Points : 4
Points : 4
Voici un exemple d'un code cgi :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
#!/usr/bin/perl
  #print ("Content-type: text/html\n\n");
  use SOAP::Transport::HTTP;
 
  SOAP::Transport::HTTP::CGI   
    -> dispatch_to('Demo')     
    -> handle;
 
  package Demo;
 
  sub hi {                     
    return "hello, world";     
  }
 
  sub GoodBye { my ($name) = @_;
 
            return 'Goodbye, ' . $name . "\n";
    }
 
	1;
abdou-wt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2012, 16h29   #8
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
si c'est du SOAP utilise la classe SOAP du PHP
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2012, 16h44   #9
abdou-wt
Invité de passage
 
Homme
Etudiant
Inscription : avril 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : avril 2012
Messages : 27
Points : 4
Points : 4
je l'ai essayé mais ça bloque : pas de réponse ! (avec 2 maniérés )

Pouvez-vous l'essayer et me donner le code ?
abdou-wt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2012, 16h45   #10
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
on ne connais pas ton API, montre ton code
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2012, 16h52   #11
abdou-wt
Invité de passage
 
Homme
Etudiant
Inscription : avril 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : avril 2012
Messages : 27
Points : 4
Points : 4
Voici le code php client :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<HTML>
<BODY>
<?php
require_once('nusoap/lib/nusoap.php');
$client = new nusoap_client('http://localhost/cgi-bin/hibye.cgi');
$param = array('$name'=>'aaaa');
if ($client->fault) {
    echo '<p><b>Fault: ';
    echo($result);
    echo '</b></p>';
} else {
    // Check for errors
    $err = $client->getError();
    if ($err) {
        // Display the error
        echo '<p><b>Error: ' . $err . '</b></p>';
    } else {
        // Display the result
        echo($client->call('GoodBye', $param ));
    }
}
?>
</BODY>
</HTML>
abdou-wt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2012, 19h14   #12
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
utilise direct l'extension SOAP du PHP
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2012, 23h49   #13
abdou-wt
Invité de passage
 
Homme
Etudiant
Inscription : avril 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : avril 2012
Messages : 27
Points : 4
Points : 4
ça bloque !

Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
$wsdl = 'http://localhost/cgi-bin/hibye.cgi';  
$options = array('cache_wsdl' => WSDL_CACHE_NONE);    // pour effacer le cache
try {
	$soapclt = new SoapClient($wsdl, $options);
	$res = $soapclt->GoodBye("aaaa");
	echo $res;  
} catch (SoapFault $fault) {
	trigger_error("ERREUR WS-CLIENT A.PHP (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
	}
?>
abdou-wt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2012, 09h34   #14
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
fais un __getFunctions
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2012, 21h25   #15
abdou-wt
Invité de passage
 
Homme
Etudiant
Inscription : avril 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : avril 2012
Messages : 27
Points : 4
Points : 4
le code bloque tjs à l'instruction

Code :
$soapclt = new SoapClient($wsdl, $options);
Est ce que le code marche chez-toi?
abdou-wt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2012, 22h50   #16
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
j'en sais rien, j'ai pas accès a ton CGI ...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2012, 10h51   #17
abdou-wt
Invité de passage
 
Homme
Etudiant
Inscription : avril 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : avril 2012
Messages : 27
Points : 4
Points : 4
tu peux le copier en localhost ! mais as-tu une exemple complet (serveur cgi, client php) ?
abdou-wt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2012, 11h01   #18
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
ah c'est que ça

ton fichier c'est pas le wdsl, c'est l'adresse de ton serveur

Code :
1
2
3
4
5
6
$location= 'http://localhost/cgi-bin/hibye.cgi';  
$options = array(
    'location' => $location,
    'uri' => ''
); 
$soapclt = new SoapClient(null, $options);
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/04/2012, 11h24   #19
abdou-wt
Invité de passage
 
Homme
Etudiant
Inscription : avril 2012
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Etudiant

Informations forums :
Inscription : avril 2012
Messages : 27
Points : 4
Points : 4
ça se débloque unpeu;

$soapclt = new SoapClient(null, $options); marche très bien mais lorsque je demande l'affichage des fonctions avec $soapclt->__getFunctions() j'ai NULL

une idée ?
abdou-wt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2012, 11h36   #20
stealth35
Modérateur
 
Inscription : septembre 2010
Messages : 7 958
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 958
Points : 9 508
Points : 9 508
je peux pas devenier les choses à toi de regarder les erreurs en attrapant les exceptions
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h53.


 
 
 
 
Partenaires

Hébergement Web