Moteur de recherche intranet [Résolu/Fermé]

Signaler
-
 Choupi12 -
Bonjour,
je suis en train de créer un site intranet et Je me suis servi de LDAP pour afficher une liste de users d'un Active Directory, mais voila. La liste est longue.

Si mes utilisateurs doivent se farcir la liste entière pour trouver la personne qu'il souhaite sa risque de prendre longtemps. Donc j'ai penser créer un moteur de recherche tout faciliter.
Seulement je n'en est jamais fait et en cherchant depuis hier je n'est pas trouver de réponse. Est il possible d'en créer ? et si oui comment ?
Pour l'instant je n'est trouvé que des exemple sur base de données... pas tout fait pareil !
Merci d'avance !

3 réponses

Messages postés
1566
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
23 mars 2020
374
oui tu peux avec ldap_search... UN code complet avec connexion (manque la déconnexion mais bon)

$ds = ldap_connect("ldap://".AD_DC.".".AD_DOMAIN) or die("Erreur de connexion à AD!");
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);

if ($ds) {
// Connexion avec une identité qui permet les modifications
// if (ldap_bind($ds, AD_USER."@".AD_DOMAIN, AD_PASS)) {echo RL."identification ok".RL; }
if (ldap_bind($ds, "nom_entreprise"."@".AD_DOMAIN, "taper_password")) {echo RL."identification ok".RL; }
else { echo RL."Problème d'identification ";}

// On va chercher l'identifiant DN exact de la personne à modifier.

//On indique ce qu'il faut pour recherhcer
//La présence des intiales est uniquement la comme test.
$dn = "OU=Users nom_entreprise,".BASE_DN;

$person="fred";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("dn","initials");
//On lance la recherche
$sr=ldap_search($ds, $dn, $filter, $justthese);

//On cherche dans le résultat le dn
$info = ldap_get_entries($ds, $sr);
//var_dump($info);
$dn = $info[0]['dn'];
if (is_string($info[0]['initials'][0]) == false) {$initiale = $info[0]['initials'][0];echo "défini";}
else { $initiale ="";echo "pas défini"; }

//Echo qui permet de tester, RL est un retour à la ligne
echo RL."dn : $dn";
echo RL."initial : $initiale".RL;
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Merci beaucoup. Sa a l'air hyper technique quand méme !
Je pensais juste faire un champs de recherche avec un bouton "Lancer la recherche" pour que sa me donne le nom des utilisateurs quoi.
Sa peut marcher avec ton code ????
Messages postés
1566
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
23 mars 2020
374
Ben dés qu'on travaille avec active directory, on travaille avec LDAP et oui c'est galère mlais ça marche. Mais en même temps, si tu as affiché la liste des utilisateurs, tu as déjà du y toucher...

C'est souvent plus simple de copier les résultats dans une table MySql...

En même temps les 4 ligne qui t'intéresent son celles-ci :
$person="nom_saisi_dans_ton_champ_de_recherche";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("dn","initials");
//On lance la recherche
$sr=ldap_search($ds, $dn, $filter, $justthese);

Moi,si j'avais ton truc à faire, je travaillerais avec du java script pour chercher quelle ligne afficher et cacher les autres, mais après chacun son truc.
Ok. Et bien si sa marche je vais essayer de trouver ^^
Merci de ton aide.