Ldap_search jamais de resultat [Résolu]

guth42 27 Messages postés mardi 8 juillet 2003Date d'inscription 4 juillet 2005 Dernière intervention - 30 mai 2005 à 15:49 - Dernière réponse : guth42 27 Messages postés mardi 8 juillet 2003Date d'inscription 4 juillet 2005 Dernière intervention
- 31 mai 2005 à 13:54
Bonjour,

je suis pas mal ennuyé, ça va faire 3j que je me bat sans résultats, c'est pour cela que je fait appele a de bonnes ames...



je suis en train de faire une interface php+ldap pour gerer un Active
Directory, la sequence connection+option+bind ce passe bien, mais apres
cela une requete ldap_search me dit fonctionner mais ne rerenvoi jamais
rien (d'apres ldap_count_entries et ldap_get_entries).


voici le code et le retour :
(la fonction ldap_aff_err fait un die avec affichage d'erreur si le 1er parametre est null, ok sinon)



echo "Connection ...";

$ds=ldap_connect("ip_serveur", "389", "cn=padl,ou=users,dc=domaine_ad,dc=test");

if ($ds)

{

echo '
opt : ';

ldap_aff_err(ldap_set_option($ds,LDAP_OPT_PROTOCOL_VERSION,3), $ds);

ldap_aff_err(ldap_set_option($ds,LDAP_OPT_REFERRALS,0), $ds);
ldap_aff_err(ldap_set_option($ds,LDAP_OPT_SIZELIMIT,0), $ds);

echo '
bind... ';

ldap_aff_err(ldap_bind($ds,$rootdn,$rootpw, $ds);

echo '

search... ';

$filtre = "(cn=*)";

echo "
$ds
$racine
$filtre
";

$sr = ldap_search($ds, $racine, $filtre);

ldap_aff_err($sr, $ds);



echo '
Nbr entries... ';

$entry = ldap_count_entries($ds, $sr);

echo $entry;

}

// on ferme la connexion au serveur LDAP


if (isset($ds))


ldap_close($ds);

---------------------------

cette page me donne :
________________________

connection...

opt : OK, OK, OK

bind OK

search :

Resource id #8

cn=users,dc=domaine_ad,dc=test

(cn=*)

OK



Nbr entries 0

________________________



alors qu'avec AD administration Tool la requete renvois des entrées...



cela pourrait-il venir d'une autre option a setter, ou autre truc fourbe du meme genre...?



Toute idée est la bien venue...

Merci d'avance.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
guth42 27 Messages postés mardi 8 juillet 2003Date d'inscription 4 juillet 2005 Dernière intervention - 31 mai 2005 à 13:54
3
Merci
victoire,

il s'agissait du bind :



$rootdn="cn=rootdn,ou=users,dc=domaine_ad,dc=test"

a changer en :

$rootdn="cn=rootdn,cn=users,dc=domaine_ad,dc=test"

(notez le ou => cn)



Le plus étonnant etant que le systeme ne renvoyais pas d'erreur de connection



Merci a tous pour votre aide!

Merci guth42 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de guth42
cs_sjon 861 Messages postés mardi 26 mars 2002Date d'inscription 29 novembre 2006 Dernière intervention - 30 mai 2005 à 22:09
0
Merci
Sael og blesud

Bon je ne vois pas d'erreur à la simple lecture ... Vous n'avez pas besoin du :
ldap_set_option($ds,LDAP_OPT_SIZELIMIT,0);
Mais, je ne pense pas que cela vienne de là malgré tout ... mais bon testez sans ...

Peut-être que la coquille vient de votre fonction ldap_aff_err() ... Mais je ne peux vous dire car vous n'en avez pas laissé le code ... Mais je vous conseille vivement de tester sans et usez des " or die " ...

Vérifiez également vos logs ldap et apache on ne sait jamais ...

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón

HARDWARE : Partie de l'ordinateur qui reçoit les coups quand se plante le software ...
Commenter la réponse de cs_sjon
guth42 27 Messages postés mardi 8 juillet 2003Date d'inscription 4 juillet 2005 Dernière intervention - 31 mai 2005 à 09:50
0
Merci
Bonjour,

apres verif des log de apache, supression de l'option et remplacement
des ldap_aff_err() par des or die, pas le moindre changement.



Je n'ai pas reussi a mettre la main sur les logs ldap...



pour info la fonction ldap_aff_err :

function ldap_aff_err($err, $ds)

{

if (!$err)

{

echo '
Error : ', ldap_error($ds), '
';

echo '
Errno : ', ldap_errno($ds), '
';

echo '
Err2str : ', ldap_err2str(ldap_errno($ds)), '
';

die ("Argl !
");

}

else

echo 'OK';

}
Commenter la réponse de guth42
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 31 mai 2005 à 10:58
0
Merci
Hello,



je ne vois pas non plus, mais il serait bien de savoir ce qu'il renvoie exactement, le ldap_count_entries() 0, ou false... ?



Bref, ajouter :

if ($entry === false)

echo '0 en tant que false';

else

echo '0 en tant que...heu...ben 0';
Commenter la réponse de malalam
guth42 27 Messages postés mardi 8 juillet 2003Date d'inscription 4 juillet 2005 Dernière intervention - 31 mai 2005 à 11:24
0
Merci
apres test : count_entries renvois bien 0 ... quelqu'un d'autre ???



P.S. c'est quoi la signification des par rapport a ?

(je suis debuttant en php, je n'ai fait que 1 semaine de php non intensif...)
Commenter la réponse de guth42
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 31 mai 2005 à 12:06
0
Merci
= fait une comparaison IDENTIQUE : le type doit etre le meme (0 peut etre un integer, ou un booleen, le triple = fera la difference; c'est ce que je voulais savoir).
ne compare que la valeur (un boleen 0 sera egal a un integer 0).

Alors non aucune idee lol, ta requete se fait bien, il ne renvoie pas false, mais il ne trouve aucune entree...ma foi :-(
Commenter la réponse de malalam
guth42 27 Messages postés mardi 8 juillet 2003Date d'inscription 4 juillet 2005 Dernière intervention - 31 mai 2005 à 12:20
0
Merci
Ok merci de ces precisions, la conclution est bien la meme que celle que j'avais fait.



Si encore AD administration tool renvoyais la meme chose ...



ou que la requete :

base : dc=domaine_ad,dc=test

filtre : (cn=*)

renvoyait une valeure....
Commenter la réponse de guth42

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.