Lister les organismes via un annuaire LDAP

Eléphanteau du PHP | 34 Messages

04 févr. 2008, 14:02

bonjour à tous,

Je cherche donc a lister les organismes d'un annuaire LDAP dans une liste déroulante html.
Je rentre donc ce code dans une des cellules de mon tableau :
(je cache volontairement l'adresse du LDAP et sa branche utilisateur.)

Code : Tout sélectionner

<td><div align="left"> <select name="IdentOrga" id="IdentOrga"> <?php /** Définition LDAP ** --------------- */ define('LDAP_HOST', '***'); // FQDN du serveur ldap define('LDAP_USER_BASE', '***'); // branche des utilisateurs define('DMDNAME','dmdName=organismes,dmdName=services'); // domaine /** Fonction de recherche de la structure de l'annuaire LDAP ** --------------------------------------------------------- */ //connection $ds = ldap_connect(LDAP_HOST); if ($ds) { //authentification en mode anonyme $r = ldap_bind($ds); if($r) { //début de la recherche $sr = ldap_search($ds,LDAP_USER_BASE, "ou=*"); $info = ldap_get_entries ($ds,$sr); // Affichage des entrées da la liste déroulante for ($i=0; $i<$info["count"]; $i++) { echo "<option value=".$i." selected>". $info[$i] ."</option>"; } } } ldap_close ($ds); ?> </select> </div></td>

Bien sur ça ne fonctionne pas et ma page reste blanche.

Si quelqu'un a une solution merci
Pouap !

Mammouth du PHP | 19672 Messages

04 févr. 2008, 14:37

Solution non mais une pioste en utilisant une méthode de débogage :

Tu as bien mis un :
if ($ds)
Mais aucun else ne suit : si une erreur s'est produite, tu n'as pas la possibilité de le savoir : donc commence par là et remonte jusqu'à ce que tu arrives à un point de ton code qui fonctionne : à partir de là, tu auras mieux cerné l'endroit précis où il y a une bourde.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 4674 Messages

04 févr. 2008, 14:44

Hey :).

Ce que tu cherches à faire, c'est débugger ton code si j'ai bien compris. Je ne connais pas LDAP en détail, mais à la limite, ce n'est pas bien grave ici.

Tu dis que tu as une page blanche, c'est à dire ? Complètement blanche ?
Essaye d'activer ton système d'erreur, et ensuite affiche toutes les erreurs.
Ce que tu peux faire après c'est écrire ton code et le tester morceau par morceaux. Par exemple, tu n'écris que la connexion (ldap_connect) avec ton if (d'ailleurs, il serait préférable d'ajouter un else à ton if). Quand le résultat du if et else sont ok, tu commences à remplir ton if etc.

C'est plus facile de coder pas à pas que de tout écrire d'un seul bloc. Ça évite les erreurs et — dans la mesure du possible — il est conseillé de le faire. Tu y gagnes en temps au final.

Voilà une première piste à explorer.

<edit>
Cyrano m'a complètement grillé, ça m'apprendra à décrocher le téléphone pendant que je rédige une réponse hehe ;-).
En 2 lignes, il dit la même chose que moi. Ce sera donc la bonne piste à poursuivre :).
</edit>
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphanteau du PHP | 34 Messages

04 févr. 2008, 16:23

merci a vous deux :)

en faisant votre méthode... le programme bloque sur la ligne :

Code : Tout sélectionner

$sr = ldap_search($ds,LDAP_USER_BASE, "ou=*");
donc plusieurs question me viennent a l'esprit :

- Est-ce que sur les différents domaines de l'annuaire peuvent être restreint en acces ? (au quel cas je n'est peut être pas acces)
- Est-ce que je lui en demande trop et la liste des organismes est trop longue ?
Pouap !

ViPHP
ViPHP | 4674 Messages

04 févr. 2008, 16:27

- Est-ce que sur les différents domaines de l'annuaire peuvent être restreint en acces ? (au quel cas je n'est peut être pas acces)
- Est-ce que je lui en demande trop et la liste des organismes est trop longue ?
i. C'est la que je vais arrêter de répondre O:) ;
ii. Je doute que PHP soit fainéant ;-), donc tu pourrais éliminer cette solution je pense.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).