Sommaire
LDAP
Introduction à LDAP
Exemple complet
ldap_add
ldap_bind
ldap_close
ldap_compare
ldap_connect
ldap_count_entries
ldap_delete
ldap_dn2ufn
ldap_err2str
ldap_errno
ldap_error
ldap_explode_dn
ldap_first_attribute
ldap_first_entry
ldap_free_result
ldap_get_attributes
ldap_get_dn
ldap_get_entries
ldap_get_option
ldap_get_values
ldap_get_values_len
ldap_list
ldap_modify
ldap_mod_add
ldap_mod_del
ldap_mod_replace
ldap_next_attribute
ldap_next_entry
ldap_read
ldap_rename
ldap_search
ldap_set_option
ldap_unbind
|
6.47.2 Exemple complet
Recupérer toutes les entrées dont le nom commence par "S"
dans un serveur, et afficher le nom et l'adresse email.
Recherche LDAP |
<?php // Structure d'une commande simple : // connexion, lien, recherche, interpretation de la recherche // résultat, déconnexion echo "<?h3>LDAP query test<?/h3>"; echo "Connexion ..."; $ds=ldap_connect("localhost"); // Doit être un serveur LDAP valide! echo "Résultat de la connexion : ".$ds."<?p>"; if ($ds) { echo "Lien ..."; $r=ldap_bind($ds); // Ceci est un lien "anonymous", typiquement // en lecture seule. En cas d'accès, affiche // " Lien résultat est" echo "Lien résultat est ".$r."<?p>"; echo "Recherche de (sn=S*) ..."; // Recherche dans les noms $sr=ldap_search($ds,"o=Ma Société, c=Fr", "sn=S*"); echo "Résultat : ".$sr."<?p>"; echo "Nombre d'entrée retournée : ".ldap_count_entries($ds,$sr)."<?p>"; echo "Lecture des entrées...<?p>"; $info = ldap_get_entries($ds, $sr); echo "Data for ".$info["count"]." items returned:<?p>"; for ($i=0; $i<?$info["count"]; $i++) { echo "dn vaut : ". $info[$i]["dn"] ."<?br>"; echo "première entrée cn vaut : ". $info[$i]["cn"][0] ."<?br>"; echo "premièr email vaut: ". $info[$i]["mail"][0] ."<?p>"; } echo "Déconnexion "; ldap_close($ds); } else { echo "<?h4>Impossible de se connecter à un serveur LDAP <?/h4>"; } ?>
| 6.47.2.1 Utilisation des fonctions PHP LDAP
Il faut d'abord que les bibliothèques client LDAP soient
compilées avec PHP. Vous pouvez vous procurer ces
bibliothèques University of Michigan (ldap-3.3 package) ou
chez Netscape (Netscape Directory SDK).
Avant d'utiliser les fonctions LDAP il faut savoir :
Le nom ou l'adresse du serveur à utiliser
Le "nd" dans le serveur (la partie du monde qui est sur ce serveur,
ce qui peut correspondre à "o=Ma société,c=Fr")
Eventuellement, un mot de passe pour accéder au serveur (de nombreux
serveusr fournissent un accès anonyme ("anonymous bind")
mais requièrent un mot de passe pour tous les autres).
Une séquence habituelle LDAP suivra le schéma suivant :
ldap_connect() // établit une connexion à un serveur
|
ldap_bind() // nom de compte "login" ou anonyme
|
éxécution de commandes sur le serveur, comme un listage, ou
une modification de données avec affichage
|
ldap_close() // "déconnexion"
|
6.47.2.2 Plus d'informations
Vous pouvez en apprendre encore plus, mais en anglais, aux adresses suivantes :
Le SDK Netscape contient un guide du programmeur au format HTML
particulièrement pratique (en anglais).
|