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

Langage PHP Discussion :

Capture de l'erreur LDAP ne fonctionne pas [PHP 5.6]


Sujet :

Langage PHP

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut Capture de l'erreur LDAP ne fonctionne pas
    Bonjour,

    Voici le morceau de mon code qui vérifie le login d'un utilisateur via LDAP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	// Vérification de la présence de l'utilisateur dans le LDAP
    	try
    	{
    		$ds = ldap_connect(LDAP_HOST);
    		ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
    		$util = ldap_bind($ds, 'uid='.$user.','.UTIL_BASE_DN, $password);
    		ldap_close($ds);
    	}
    	catch (Exception $e)
    	{
    		$error_msg = 'Erreur LDAP : '.$e;
    		require RACINE.'public/page.phtml';
    		exit;
    	}
    Si je tape un utilisateur et un mot de passe valide, ça fonctionne.

    Si je tape un utilisateur valide mais un mauvais mot de passe, au lieu que l'erreur LDAP soit récupérée par le catch et traitée en gestion d'erreur, j'ai directement ceci à l'affichage :
    Warning: ldap_bind(): Unable to bind to server: Invalid credentials in [chemin vers mon programme] on line [numéro de la ligne $util = ldap_bind($ds, 'uid='.$user.','.UTIL_BASE_DN, $password);]
    Est-ce parce que l'erreur est un Warning ?
    Si oui, comment faire pour que le catch fonctionne ?

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    C'est ça, un warning n'est pas une exception.

    Tu peux ne pas afficher le warning et tester le résultat du ldap_bind :

    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
    // Vérification de la présence de l'utilisateur dans le LDAP
    	try
    	{
    		$ds = ldap_connect(LDAP_HOST);
    		ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
    		$util = @ldap_bind($ds, 'uid='.$user.','.UTIL_BASE_DN, $password);
                    ldap_close($ds);
    		if ($util) {
                        //Success
                    } else {
                        //Fail
                    }
    	}
    	catch (Exception $e)
    	{
    		$error_msg = 'Erreur LDAP : '.$e;
    		require RACINE.'public/page.phtml';
    		exit;
    	}

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    OK Merci.
    J'ai changé mon code.

    Il y a toujours le Warning, le cas échéant, bien sûr.
    Selon le résultat de mes tests, je verrai plus tard s'il faut que je capture le libellé du Warning.

    Pour le moment, on va dire que c'est résolu.

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

Discussions similaires

  1. [XL-2003] Gestion de l'erreur qui ne fonctionne pas
    Par liop49 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/05/2012, 10h19
  2. Zéro erreur et ça fonctionne pas
    Par nomidia dans le forum OpenCV
    Réponses: 5
    Dernier message: 16/04/2010, 10h19
  3. gestion d'erreur qui ne fonctionne pas
    Par will Igetit dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/03/2009, 10h09
  4. Pas d'erreur, mais ne fonctionne pas?
    Par ploxien dans le forum Hibernate
    Réponses: 2
    Dernier message: 27/10/2008, 12h54

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