Services webmasters
Partenaires
Jeux concours gratuits
 
ldap_rename
<<<
ldap_search ldap_set_option
>>>

7.47 LDAP
7 Index des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes prédefinies
Exemples
Utiliser les fonctions LDAP de PHP
ldap_8859_to_t61
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_first_reference
ldap_free_result
ldap_get_attributes
ldap_get_dn
ldap_get_entries
ldap_get_option
ldap_get_values_len
ldap_get_values
ldap_list
ldap_mod_add
ldap_mod_del
ldap_mod_replace
ldap_modify
ldap_next_attribute
ldap_next_entry
ldap_next_reference
ldap_parse_reference
ldap_parse_result
ldap_read
ldap_rename
->ldap_search
ldap_set_option
ldap_set_rebind_proc
ldap_sort
ldap_start_tls
ldap_t61_to_8859
ldap_unbind

7.47.44 ldap_search()Recherche sur le serveur LDAP

[ Exemples avec ldap_search ]   PHP 3, PHP 4

resource  ldap_search ( resource   link_identifier , string   base_dn , string   filter , array   attributes , int   attrsonly , int   sizelimit , int   timelimit , int   deref )

ldap_search retourne un identifiant de résultat, ou bien FALSE en cas d'erreur.

ldap_search effectue une recherche avec le filtre filter dans le dossier base_dn avec le paramétrage LDAP_SCOPE_SUBTREE . C'est l'équivalent d'une recherche dans le dossier. base_dn spécifie le DN de base du dossier.

Il y a un quatrième paramètre optionnel, qui peut être fourni pour restreindre les attributs et valeurs retournées par le serveur, afin de les adapter à vos besoins. C'est bien plus efficace que le comportement par défaut (qui retourne tous les attributs et leurs valeurs associées). L'utilisation de ce quatrième est donc vivement recommandé.

Le quatrième paramtère est un tableau de chaînes PHP avec les attributs demandé, comme par exemple : array("mail","sn","cn") . Notez que le "dn" est toujours retourné, indépendamment des attributs demandés.

Notez aussi que certains serveurs de dossiers sont configurés pour retourner un nombre limité d'entrées. Si cette situation survient, le serveur indiquera qu'il a retourné un résultat partiel. C'est aussi le cas si le sixième paramètre sizelimit a été utilisé pour limiter le nombre d'entrées retournées.

Le cinquième paramètre attrsonly doit être mis à 1 si seul les types d'attributs sont désirés. Si ce paramètre est mis à 0, les types d'attributs et leurs valeurs seront retournées : c'est le comportement par défaut.

Avec le sixième paramètre sizelimit , il est possible de limiter le nombre d'entrées lues dans le résultat. En utilisant 0, on indique qu'il n'y a pas de limite. NOTE : ce paramètre NE peut PAS remplacer la configuration du serveur. Vous pouvez au mieux baisser encore cette limite.

Le septième paramètre timelimit permet de spécifier le nombre de secondes de duréee de la recherche. En utilisant la valeur 0, la recherche pourra durée indéfiniment. NOTE : ce paramètre NE peut PAS remplacer la configuration du serveur. Vous pouvez au mieux baisser encore cette limite.

Le huitième paramètre deref spécifie comment les alias doivent être géré durant la rechercheé. Ce paramètre peut prendre l'une des valeurs suivantes :

  • LDAP_DEREF_NEVER - (par défaut) les alias ne sont jamais déréférencés.
  • LDAP_DEREF_SEARCHING - les alias sont déréférencés durant la recherche, mais pas durant la localisation du dossier de recherche.
  • LDAP_DEREF_FINDING - les alias sont déréférencés durant la localisation du dossier de recherche, mais pas durant la recherche.
  • LDAP_DEREF_ALWAYS - les alias sont toujours déréférencés.

Note

Ces paramètres optionnels ont été ajoutés en 4.0.2 : attrsonly , sizelimit , timelimit et deref .

Le filtre de recherche peut être simple ou avancé, et utiliser ces opérateurs booléen au format décrit dans la documentation LDAP (reportez vous à Netscape Directory SDK pour plus d'informations sur les filtres).

L'exemple ci-dessous lit le nom du service, le nom, le prénom et le email des employés de la société "Ma Compagnie", dont le nom ou le prénom contient la sous chaîne : $person. Cet exemple illustre l'utilisation de filtres pour indiquer au serveur de faire une recherche sur deux attributs.
Recherche LDAP

<?php
// $ds doit être une ressource de connexion valide

// $person est un nom ou une partie de nom (par exemple, "Jean")

$dn = "o=Ma Compagnie, c=FR";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array( "ou", "sn", "givenname", "mail");

$sr=ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

print
$info["count"]." entrées trouvées.<p>";
?>

Depuis PHP 4.0.5, il est possible de faire des recherches paralelles. Pour cela, vous devez utiliser un tableau de ressources de connexion comme premier argument, au lieu d'une ressource simple. Si vous ne voulez pas utiliser le même dossier de base DN et le même filtre pour toutes les recherches, vous pouvez aussi utiliser un tableau de DN et de filtres. Ces tableaux doivent alors etre de la même taille que le table de ressources de connexion : la première entrée du tableau de ressources sera utilisé avec le premier DN et le premier filtre, etc... Lorsque vous faite une recherche paralelle, un tableau de résultats est retourné, sauf en cas d'erreur, auquel cas l'entrée contiendra FALSE . C'est très proche du comportement habituel, hormis le fait qu'un résultat est toujours retourné lorsqu'une recherche est faite. Il y a de rares cas où une recherche retourne FALSE , alors qu'une recherche en paralelle retourne un identifiant.

<< ldap_search >>
ldap_rename LDAP ldap_set_option
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -