Ldap_search jamais de resultat

Résolu
guth42 Messages postés 27 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 4 juillet 2005 - 30 mai 2005 à 15:49
guth42 Messages postés 27 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 4 juillet 2005 - 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.

7 réponses

guth42 Messages postés 27 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 4 juillet 2005
31 mai 2005 à 13:54
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!
3
cs_sjon Messages postés 861 Date d'inscription mardi 26 mars 2002 Statut Membre Dernière intervention 29 novembre 2006 1
30 mai 2005 à 22:09
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 ...
0
guth42 Messages postés 27 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 4 juillet 2005
31 mai 2005 à 09:50
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';

}
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 mai 2005 à 10:58
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';
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
guth42 Messages postés 27 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 4 juillet 2005
31 mai 2005 à 11:24
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...)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 mai 2005 à 12:06
= 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 :-(
0
guth42 Messages postés 27 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 4 juillet 2005
31 mai 2005 à 12:20
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....
0
Rejoignez-nous