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

Bibliothèques et frameworks PHP Discussion :

[Web Service] Authentification en PHP


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 70
    Points : 30
    Points
    30
    Par défaut [Web Service] 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 : 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
     
    <?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;
     
    }
    ?>

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    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

  3. #3
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    rien a voir avec ton problème mais c'est pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $methode -> __call('identification', array($identifiant, $password));
    mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $methode->identification($identifiant, $password);

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    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 : 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
    <?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

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 70
    Points : 30
    Points
    30
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $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.

  6. #6
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par patriot Voir le message
    j'ai testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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)

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 70
    Points : 30
    Points
    30
    Par défaut
    Bonsoir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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


  8. #8
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    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

  9. #9
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    A priori le pb vient du test que fait patriot pour déterminer le retour fait par le webservice.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($methode)
    {
        //On passe toujours ici...
    }
    mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 70
    Points : 30
    Points
    30
    Par défaut
    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 : 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
    <?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 : 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
    <?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));
    ?>

Discussions similaires

  1. [Web Service][SOAP] Débutant PHP/NuSOAP
    Par tintin72 dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 20/02/2014, 21h17
  2. [Web Service][SOAP] client php et web service windev
    Par pev15 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 28/05/2010, 13h48
  3. WEB SERVICES & authentification
    Par mickael.guilbert dans le forum Glassfish et Payara
    Réponses: 7
    Dernier message: 07/07/2008, 15h58
  4. [Web Service][SOAP] Tableau php et type complexe ?
    Par tintin72 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 18/06/2007, 11h31
  5. [Web Service] Authentification
    Par Stef_D dans le forum Delphi
    Réponses: 9
    Dernier message: 15/02/2007, 17h05

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