2010-03-23 5 views
1

J'essaye de me connecter à ldap avec une application web php. Si le nom d'utilisateur/mot de passe est correct tout fonctionne bien mais si le nom d'utilisateur/mot de passe est incorrect, j'obtiens l'erreur suivante:php/ldap - la liaison échoue mais errorno ne s'exécute pas

PHP Avertissement: ldap_bind() [fonction.ldap-bind]: Impossible de lier au serveur: informations d'identification non valides Pour une raison quelconque, je ne suis pas en mesure d'examiner l'erreur ou l'état de la variable de liaison pour imprimer le message d'erreur approprié.

des idées?

Répondre

3

Le problème est plus probable que ldap_errno prend la ressource de connexion ldap , et que ldap_bind vous ECHEC utiliser est le résultat de récupérer errno.

Aussi: avez-vous essayé de supprimer l'erreur via le signe @?

par exemple .:

$ldapconn = ldap_connect("localhost"); 
@$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass); 

if($ldapbind) 
{ 
    // Everything went fine 
} else { 
    // Use the connection resource for ldap_errno 
    $errno = ldap_errno($ldapconn); 

    // Check the error number, print an error message (...) 
} 
+0

merci, je ne savais pas sur l'option surpress en utilisant le signe @. Il a résolu le problème;) –

1

Vous devez vérifier si votre connexion ldap est ok avant d'essayer de lier:

$ldap_conn = ldap_connect($ldap_host,$ldap_port); 
if ($ldap_conn) { 
    ldap_bind($ldap_conn, $ldap_user_dn, $ldap_pass); 
    ... 
} 
+0

Son problème concerne le message d'erreur qui apparaît en cas d'échec de 'ldap_bind'. Comment vérifier la ressource de connexion aide? – lamas

+0

Vous avez raison. Néanmoins, ldap_bind attend un identificateur de lien de ressource valide en tant que premier paramètre, donc il vaut la peine de le tester avant d'essayer de lier. Je ne suis pas un grand fan du signe @, il cache parfois le vrai problème. –

+0

Il veut cacher l'erreur de PHP de l'utilisateur pour produire une erreur conviviale lui-même. Où est le problème avec le signe @ ici? – lamas

Questions connexes