Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/03/2011, 20h01   #1
Candidat au titre de Membre du Club
 
toto amicizia
Inscription : juillet 2010
Messages : 69
Détails du profil
Informations personnelles :
Nom : toto amicizia

Informations forums :
Inscription : juillet 2010
Messages : 69
Points : 13
Points : 13
Par défaut Authentification en PHP

Bonsoir


Je me plante sur la phase d'authentification. j'ai une page PHP dans laquelle je code la connexion au Webservice d'authentification que j'ai codé en J2EE. le code du J2EE marche bien puisque le test fonctionne sous eclipse. Le bug du code c'est que soit le mot de passe le bon ou non j'ai le message echo "Utilisateur trouvé"




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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
<?php
 
// Pour supprimer le cache du web-service
ini_set('soap.wsdl_cache_enabled', 0);
 
// Nouveau Client SOAP
try {
    // Nouvelle instance de la classe soapClient
   $methode = new SoapClient('http://localhost:8020/PJSW/services/Connexion?wsdl', array('trace' => 1));
   $identifiant= $_POST['id'];
   $password= $_POST['mp'];
 
 
    // Appel de la méthode QuelJour du service web
   try{
    $Resultat =  $methode -> __call('identification', array($identifiant, $password));
	} catch (SoapFault $fault) {
    	trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
	}
        // affiche le résultat
 
 
	if ($Resultat == true)
 
		 {
 
  echo "Utilisateur trouvé";  
 
         }
 
elseif ($Resultat == false)
       {
    echo "Utilisateur non trouvé";
       }
 
} catch (SoapFault $fault) {
    echo 'erreur : '.$fault;
 
}
?>
patriot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 10h16   #2
Membre chevronné
 
Inscription : juin 2004
Messages : 747
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juin 2004
Messages : 747
Points : 741
Points : 741
Si ce que te renvoies le webservice ne correspond pas à ce que tu attends, c'est un problème côté serveur (J2EE dans ton cas).
Il ne fait pas ce qu'on lui demande de faire visiblement...
__________________
  • Mon blog PHP : http://blog.alterphp.com
  • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein
pc.bertineau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 10h26   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
rien a voir avec ton problème mais c'est pas :
Code :
$methode -> __call('identification', array($identifiant, $password));
mais :
Code :
$methode->identification($identifiant, $password);
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 11h01   #4
Membre chevronné
 
Inscription : juin 2004
Messages : 747
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juin 2004
Messages : 747
Points : 741
Points : 741
Citation:
Envoyé par pc.bertineau Voir le message
Si ce que te renvoies le webservice ne correspond pas à ce que tu attends, c'est un problème côté serveur (J2EE dans ton cas).
Il ne fait pas ce qu'on lui demande de faire visiblement...
J'avais pas vu ce que tu affichais... ($Return == true) est vrai à chauqe fois que $Retour est non-vide...


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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
 
// Pour supprimer le cache du web-service
ini_set('soap.wsdl_cache_enabled', 0);
 
// Nouveau Client SOAP
try {
    // Nouvelle instance de la classe soapClient
   $methode = new SoapClient('http://localhost:8020/PJSW/services/Connexion?wsdl', array('trace' => 1));
   $identifiant= $_POST['id'];
   $password= $_POST['mp'];
 
 
    // Appel de la méthode QuelJour du service web
   try{
    $Resultat =  $methode ->identification($identifiant, $password));
	} catch (SoapFault $fault) {
    	trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
	}
        // affiche le résultat
 
        var_dump($Resultat);
 
 
	if ($Resultat == true)
 
		 {
 
  echo "Utilisateur trouvé";  
 
         }
 
elseif ($Resultat == false)
       {
    echo "Utilisateur non trouvé";
       }
 
} catch (SoapFault $fault) {
    echo 'erreur : '.$fault;
 
}
?>
Essayes ça et regarde la structure de $Resultat... Tu devrais comprendre comment interpréter le retour fait par le webservice !
__________________
  • Mon blog PHP : http://blog.alterphp.com
  • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein
pc.bertineau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 11h38   #5
Candidat au titre de Membre du Club
 
toto amicizia
Inscription : juillet 2010
Messages : 69
Détails du profil
Informations personnelles :
Nom : toto amicizia

Informations forums :
Inscription : juillet 2010
Messages : 69
Points : 13
Points : 13
Citation:
Si ce que te renvoies le webservice ne correspond pas à ce que tu attends, c'est un problème côté serveur (J2EE dans ton cas).
Il ne fait pas ce qu'on lui demande de faire visiblement...
mon web service retourne une chaine de caractère (true ou false) je l'ai declaré String et pas boolean. quand je teste sous eclipse ça marche nikel sauf quand je passe sur le client PHP c'est à ce moment là ou ne marche pas

j'ai testé
Code :
$methode->identification($identifiant, $password);
mais sans succes

je veux attirer votre attention que le problème est au niveau de l'exploitation du retour de la methode identification jai fait le test suivant:

mais ne m'affiche rien alors la variable $methode ne recois pas de valeur de la méthode identification.
patriot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 11h42   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
Citation:
Envoyé par patriot Voir le message
j'ai testé
Code :
$methode->identification($identifiant, $password);
mais sans succes
c'est pour ca que j'ai dis : "rien a voir avec ton problème"
puisque c'est plus un problème de syntaxe

toujours faire var_dump si tu veux affiche quelque chose dans ce cas la, (echo est inutile en débogage)
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 19h14   #7
Candidat au titre de Membre du Club
 
toto amicizia
Inscription : juillet 2010
Messages : 69
Détails du profil
Informations personnelles :
Nom : toto amicizia

Informations forums :
Inscription : juillet 2010
Messages : 69
Points : 13
Points : 13
Bonsoir

Code :
1
2
3
4
object(stdClass)[2]
  public 'identificationReturn' => string 'false' (length=5)
 
Utilisateur non trouvé
voila ce que je recupère quand j'ajoute a mon code

patriot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 16h54   #8
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Salut,
Tu peux également debugger du côté de ton serveur WS, es-tu certain que tu reçois bien les bonnes données ?
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 17h06   #9
Membre chevronné
 
Inscription : juin 2004
Messages : 747
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juin 2004
Messages : 747
Points : 741
Points : 741
A priori le pb vient du test que fait patriot pour déterminer le retour fait par le webservice.

Code :
1
2
3
4
if ($methode)
{
    //On passe toujours ici...
}
mais

Code :
1
2
3
4
5
6
7
8
if ($methode->identificationReturn)
{
    echo 'Utilisateur loggé';
}
else
{
    echo 'Utilisateur non-loggé';
}
__________________
  • Mon blog PHP : http://blog.alterphp.com
  • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein
pc.bertineau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 20h03   #10
Candidat au titre de Membre du Club
 
toto amicizia
Inscription : juillet 2010
Messages : 69
Détails du profil
Informations personnelles :
Nom : toto amicizia

Informations forums :
Inscription : juillet 2010
Messages : 69
Points : 13
Points : 13
Bonjour

j'ai résolu le problème en utilisant le protocole nusoap


par contre je rencontre le meme problème avec un autre webservice d'insertion d'un nouveau client, toujours avec le protocole nusoap

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
25
26
<?php
 require_once ('./nusoap-0.9.5/lib/nusoap.php');
// Pour supprimer le cache du web-service
ini_set('soap.wsdl_cache_enabled', 0);
 
 $nuser= 1;
 $nomc= $_POST['fname'];
   $pren= $_POST['name'];
   $adress= $_POST['adresse'];
   $ntel= $_POST['phone'];
   $ntelm= $_POST['mphone'];
   $email= $_POST['email'];
 
   $clt = new nusoap_client('http://localhost:8020/PJSW/services/Newclient?wsdl');
   $insert = $clt->call('ajoutclient', array('nomc'=>$nomc,'pren'=>$pren, 'adress'=>$adress,'ntel'=>$ntel, 'ntelm'=>$ntelm,'email'=>$email,'nuser'=>$nuser));
 
 
print_r($nomc);
 print_r($pren);
   print_r($adress);
   print_r($ntel);
   print_r($ntelm);
   print_r($email);
 
 
?>

j'ai changé le code j'utilise maintenant le protocole nusoap au lieu de soap

j'ai ce massage d'erreur

Array ( [faultcode] => soapenv:Server.userException [faultstring] => org.xml.sax.SAXException: operation description is missing parameter description! [detail] => Array ( [hostname] => PC-de-Chafik ) )

voila le code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include_once ('./nusoap-0.9.5/lib/nusoap.php');
// Pour supprimer le cache du web-service
ini_set('soap.wsdl_cache_enabled', 0);
 
 $nuser= 1;
 $nomc= $_POST['fname'];
   $pren= $_POST['name'];
   $adress= $_POST['adresse'];
   $ntel= $_POST['phone'];
   $ntelm= $_POST['mphone'];
   $email= $_POST['email'];
 
   $clt = new nusoap_client('http://localhost:8020/PJSW/services/Newclient?wsdl');
   $insert = $clt->call('ajoutclient', array('nomc'=>$nomc,'pren'=>$pren, 'adress'=>$adress,'ntel'=>$ntel, 'ntelm'=>$ntelm,'email'=>$email,'nuser'=>$nuser));
?>
patriot est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h39.


 
 
 
 
Partenaires

Hébergement Web