Ldap_search jamais de resultat [Résolu]

Signaler
Messages postés
27
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
4 juillet 2005
-
Messages postés
27
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
4 juillet 2005
-
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

Messages postés
27
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
4 juillet 2005

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!
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
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 ...
Messages postés
27
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
4 juillet 2005

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';

}
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
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';
Messages postés
27
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
4 juillet 2005

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...)
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
= 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 :-(
Messages postés
27
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
4 juillet 2005

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....