Créé le : 3 octobre 2017
Catégorie: Non classé
Mise à jour : 3 octobre 2017
[PHP] recherches LDAP en PHP
Affichage des attributs LDAP d’une seule entrée
// votre serveur ldap
$ds = ldap_connect( "server.domaine.fr" ) ;
//Objet sur lequel extraire les attributs
$dn = "CN=User NOM,OU=TUTU,O=Titi";
//sélection du type d'objet (ici tout)
$filter="(objectclass=*)";
//Attributs a extraire, c'est + efficace de sélectionner uniquement les attributs utile
//Dans cet exemple tous les attributs sont extraits
//$justthese = array("ou", "sn", "givenname", "mail");
//$sr=ldap_read($ds, $dn, $filter, $justthese);
$sr=ldap_read($ds, $dn, $filter);
$entry = ldap_get_entries($ds, $sr);
//Affichage des attributs
echo "email = ".$entry[0]["mail"][0] . "<br>
site = ".$entry[0]["l"][0].'<br>
cn1 = '.$entry[0]["cn"][0].'<br>
cn2 = '.$entry[0]["cn"][1].'<br>';
//fermeture de la connexion
ldap_close($ds);
affichage selon critère de recherche (=liste)
Cet exemple fait une recherche dans l’annuaire LDAP sur tous les noms de famille commençant par B
Une boucle affiche ensuite les attributs demandés
//=====connection LDAP
$ds = ldap_connect( "serveur.domaine.fr" ) ; // must be a valid LDAP server!
//echo "connect result is " . $ds . "<br />";
if ($ds) {
//=====authentification user (sinon anonymous)
$r=ldap_bind($ds,"CN=Bruce WAYNE,OU=Gottham,O=USA","password");
// read-only access
//echo "Bind result is " . $r . "<br />";
//=====recherche sur nom de famille seulement (on peut mettre "sn=*")
$sr=ldap_search($ds, "o=LGCF", "sn=B*");
//=====affiche nb résultats
echo "Nombre de résultats = " . ldap_count_entries($ds, $sr) . "<br />";
//===== nb resultat (autre)
$info = ldap_get_entries($ds, $sr);
echo "Données pour les " . $info["count"] . " entrées trouvées<p>";
//===== boucle affichage résultats
for ($i=0; $i<$info["count"]; $i++) {
echo "dn = " . $info[$i]["dn"] . "<br />";
echo "nom convivial = " . $info[$i]["cn"][0] . "<br />";
echo "Responsable = " . $info[$i]["manager"][0] . "<br />";
echo "Serveur = " . $info[$i]["mailserver"][0] . "<br />";
echo "titre = " . strtolower( $info[$i]["title"][0] ) . "<br />";
echo "email = " . $info[$i]["mail"][0] . "<br /><hr />";
}
//===== fermeture connexion
ldap_close($ds);
} else {
echo "<h4>Unable to connect to LDAP server</h4>";
}
Accueil

Laissez un commentaire