PHP
PHP / MySql

Recherche
 
ManuelPHP.com

ldap_sasl_bind
<<<
ldap_search ldap_set_option
>>>

8.60 LDAP
8 Référence des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes pré-définies
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_sasl_bind
->ldap_search
ldap_set_option
ldap_set_rebind_proc
ldap_sort
ldap_start_tls
ldap_t61_to_8859
ldap_unbind

8.60.45 ldap_search()Recherche sur le serveur LDAP

[ Exemples avec ldap_search ]   PHP 3, PHP 4, PHP 5

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 paramètre est donc vivement recommandée.

Le quatrième paramètre est un tableau de chaînes PHP avec les attributs demandés, 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 renvoyé 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 seuls 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ée de la recherche. En utilisant la valeur 0, la recherche pourra durer 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és 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 l'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);

echo
$info["count"]." entrées trouvées.\n";
?>

Depuis PHP 4.0.5, il est possible de faire des recherches parallèles. 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 être de la même taille que le tableau de ressources de connexion : la première entrée du tableau de ressources sera utilisée avec le premier DN et le premier filtre, etc. Lorsque vous faites une recherche parallèle, 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 renvoi FALSE , alors qu'une autre en parallèle retourne un identifiant.

<< ldap_search >>
ldap_sasl_bind LDAP ldap_set_option





Google

Services webmasters

Les manuels
 

ManuelPHP.com © 2003-2012 Tigersun - Crédits
Webmaster Site Internet - Télécharger des Logiciels - Programme TV - Entraide Informatique - Agence de Communication
2018-11-18