Rechercher : dans
Par :

PHP LDAP

Dernière réponse le 3 avr 2008 à 15:21:06 simo, le 3 avr 2008 à 12:02:49 
 Signaler ce message aux modérateurs

Bonjour,
Comment afficher les informations d'une personne donnée située dans un répertoire donné de LDAP?
Quel serait le filtre?

Merci.

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « PHP LDAP » dans :
PHP - Connexion à un annuaire LDAP Voir Introduction à LDAP PHP permet la connexion et l'envoi de requêtes sur un annuaire LDAP, c'est-à-dire un serveur permettant de stocker des informations de manière hiérarchique. Un serveur LDAP est conçu pour être capable de gérer les opérations...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
[PHP] Parse error, unexpected T_STRING, expecting ',' or ';' VoirCette erreur, fréquente, se produit notamment lorsqu'un guillemet est présent dans une chaîne délimitée par ce même type de guillemets, par exemple :
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
PHP - Administration d'un annuaire LDAP VoirIntroduction à LDAP PHP permet la connexion et l'envoi de requêtes sur un annuaire LDAP, c'est-à-dire un serveur permettant de stocker des informations de manière hiérarchique. Pour plus d'informations sur les fonctions LDAP de PHP, reportez...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...

1

=[Cvrd]=Tassin, le 3 avr 2008 à 12:05:05

Je pense que tu trouveras ton bonheur ici : PHP -- Alex pour vous servir --

-- N'oubliez pas de mettre vos sujets en "Résolu" lorsque vous avez la réponse ;-) --

Répondre à =[Cvrd]=Tassin

2

simo, le 3 avr 2008 à 12:11:25

En fait, j'ai réalisé la fonction qui cherche un uid dans LDAP et ça marche. Mon problème est juste comment écrire le filtre pour que j'ai en même temps une restriction de recherche pour un groupe donné tout en ayant les information "sn,cn et mail) du user.

Répondre à simo

3

=[Cvrd]=Tassin, le 3 avr 2008 à 13:20:56

La recherche d'entrée dans l'annuaire est sans aucun doute la fonction la plus utile parmi les fonctions LDAP de PHP¨car un annuaire est prévu pour être plus souvent sollicité en lecture (recherche) qu'en écriture (ajout/suppression/modification).

La fonction ldap_search() permet de rechercher une ou plusieurs entrées de l'annuaire LDAP à l'aide du DN de base, c'est-à-dire le niveau de l'annuaire à partir duquel la recherche est effectuée, ainsi qu'un filtre représentant le type de recherche que l'on désire effectuer. Sa syntaxe est la suivante :

int ldap_search (int identifiant, string base_dn,
	string filter [, array attributs [, int attrsonly [,
	int sizelimit [, int timelimit [, int deref]]]]])
La fonction ldap_search() admet en paramètre l'identifiant du serveur LDAP retourné par la fonction ldap_connect() ainsi que le nom distingué du dossier de base (c'est-à-dire celui à partir duquel la recherche doit s'effectuer) et le filtre de la recherche. La fonction ldap_search() est par défaut configurée avec l'option de récursivité LDAP_SCOPE_SUBTREE ce qui signifie que la recherche se fait dans toutes les branches filles du dossier de base.

Le paramètre attributs permet de restreindre les attributs et les valeurs retournées, c'est-à-dire qu'il s'agit d'un tableau contenant le nom des attributs (chaînes de caractères) des attributs que l'on désire utiliser. Par défaut l'intégralité des attributs des entrées est renvoyée par le serveur, ce qui peut donner un nombre de données très important.

Le paramètre attrsonly permet de demander à l'annuaire de retourner uniquement les types d'attributs et non leurs valeurs lorsqu'il vaut 1. Par défaut (ou lorsque ce paramètre vaut 0) les types des attributs ainsi que leurs valeurs sont retournés par le serveur.

Le sixième paramètre sizelimit comme son nom l'indique permet de limiter le nombre maximum de résultat retourné par l'annuaire afin de réduire le volume des données retournées. Il faut noter que si le serveur est configuré pour retourner moins de résultats, une valeur supérieure de l'attribut ne permettra pas de dépasser la valeur inscrite dans la configuration du serveur. La valeur 0 indique qu'aucune limite autre que celle imposée par le serveur n'est définie.

Le septième paramètre timelimit permet de limiter le temps maximal de la recherche pris par le serveur. Il faut noter que si le serveur est configuré pour retourner moins de résultats, une valeur supérieure de l'attribut ne permettra pas de dépasser la valeur inscrite dans la configuration du serveur. La valeur 0 indique qu'aucune limite autre que celle imposée par le serveur n'est définie.

Enfin le huitième paramètre deref permet d'indiquer selon sa valeur la façon de procéder avec les alias lors de la recherche. Les valeurs possibles de ce paramètre sont les suivantes :

* LDAP_DEREF_NEVER : les alias ne sont jamais déréférencés. Il s'agit de la valeur par défaut.
* LDAP_DEREF_SEARCHING : les alias sont déréférencés uniquement pendant la recherche et non pendant leur localisation.
* LDAP_DEREF_FINDING : les alias sont déréférencés uniquement pendant leur localisation et non lors de la recherche.
* LDAP_DEREF_ALWAYS : les alias sont toujours déréférencés.

L'exemple suivant permet de connaître le nombre de résultats retournés pour une recherche d'une personne dont le nom ou le prenom commence par la chaîne $person passée en paramètre :
<?php
$ds=ldap_connect($server);  // On suppose que le serveur LDAP est sur cet hote
if ($ds) {
	$r=ldap_bind($ds,$rootdn,$rootpw);

	$dn = "o=commentcamarche, c=fr";

	$filtre="(|(sn=$person*)(cn=$person*))";

	$restriction = array( "cn", "sn", "mail");

	$sr=ldap_search($ds, $dn, $filtre, $restriction);

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

	print $info["count"]." enregistrements trouves";
       
         ldap_close($ds);
} else { 
         echo "Connexion au serveur LDAP impossible"; 
} ?>
Toutefois, une fois l'opération de recherche effectuée, il s'agit d'exploiter les résultats obtenus. Ainsi, la majeure partie des fonctions LDAP ont pour but le traitement des résultats de la recherche.
Dans l'exemple ci-dessus, la fonction ldap_get_entries() permet de récupérer des informations sur les entrées retournées par la fonction ldap_search().

Il faut que tu utilises les différents paramètres de ldap_search pour constituer ton filtre. -- Alex pour vous servir --

-- N'oubliez pas de mettre vos sujets en "Résolu" lorsque vous avez la réponse ;-) --

Répondre à =[Cvrd]=Tassin

4

simo, le 3 avr 2008 à 13:46:27

Merci pour ta réponse. Et c justement ça mon problème, c le filtre. Je n'arrive pas à constituer un filtre de rechrche d'une personne x dans un group y!!!

Répondre à simo

5

=[Cvrd]=Tassin, le 3 avr 2008 à 14:10:59

J'ai trouvé des exemples dans le fichier suivant : http://ginfo.ec-marseille.fr/site/index2.php?option=com_content&do_pdf=1&id=21

Bon courage -- Alex pour vous servir --

-- N'oubliez pas de mettre vos sujets en "Résolu" lorsque vous avez la réponse ;-) --

Répondre à =[Cvrd]=Tassin

6

 simo, le 3 avr 2008 à 15:21:06

Merci pour ton aide :)

Répondre à simo