IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] LDAP-PHP / Recherche sur 2 branches "OU"


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 8
    Points
    8
    Par défaut [Mail] LDAP-PHP / Recherche sur 2 branches "OU"
    Hello,

    je n'arrive pas à faire une recherche sur deux branches "frères".

    mon architecture se presente ainsi:

    DC=dc=ldap,dc=c2c .
    ensuite j'ai 8 catégories "ou".
    J'aimerai faire une requête sur deux "ou" (ou=User et ou=Contact) pour avoir les informations des personnes de ces 2 groupes.

    J'arrive très bien a faire la requête sur l'un ou l'autre mais pas seulement les deux!

    En effet ma requête se fais sur les 8 groupes...

    quelqu'un aurait-il une idée?

    sur php.net, il parle de tableau de ressource et de tableau de filtre...

    Je n'ai pas réussi à appliquer leur technique.

    merci!

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Je dirais qu'il faut utiliser ldap_search() sur l'objet parent à vos différentes OU et utiliser un filtre pour ne remonter que ces 2 OU dans votre résultat. Le filtre devrait être le suivant (ça fait longtemps) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (|(ou=User)(ou=Contact))

    Julp.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Merci pour le conseil ;-)

    par contre mon problème se trouve sûrment dans le filtre... En effet, si je met dans mon filtre (|(ou=User)(ou=Contact)) je ne peux plus faire de recherche sur le nom et le mail?

    J'ai déjà un filtre (|(mail='.$recherche.')(cn='.$recherche.')) pour rechercher les occurences dans le mail et le nom. Mais toutes les branches "OU" sont interrogées.

    Ce que j'essayais de faire c'est de lui dire de trouver le resultat de ma recherche dans mes deux branche "OU". Et je ne sais pas où lui dire ça

    Est-ce que l'on peut donner deux "noeuds" de recherche dans le "DN"?

    ex: $dn= '(|(OU=User)(OU=ontact)),dc=ldap,dc=com'

    Je sais que cela ne marche pas, mais c'est ce que je voudrais faire

    Merci

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par Yoshi_da_f..k
    Est-ce que l'on peut donner deux "noeuds" de recherche dans le "DN"?

    ex: $dn= '(|(OU=User)(OU=ontact)),dc=ldap,dc=com'
    Je vous confirme que ce n'est pas possible à ce niveau, seul le filtre vous le permet.

    Vous devriez pouvoir modifier le filtre pour intégrer tous ces critères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $filtre = "(&(|(ou=User)(ou=contact))(|(mail=$recherche)(cn=$recherche)))";

    Julp.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    AH!

    Cette fois j'ai cru que c'était la bonne !!!

    Le problème est que lorsque je filtre avec l'option "ou", la recherche ne va pas plus loins dans l'arbre. Et mon resultat retourne une seule entrée (car il a bien trouver le répértoire "user").

    J'ai essayé de changer l'ordre (de droite à gauche) mais rien ne change...

    Dans la "fiche" de mon utilisateur (se trouvant dans "contact" ou "user") ne donne aucune information du groupe où il se trouve...

    Il parait qu'avec php5, il y a une nouvelle option permettant de faire des recherche parallèle avec des tableau de données...
    http://fr3.php.net/manual/fr/function.ldap-search.php

    Je ne sais pas si qqun a déjà utilisé cette technique?

    En tout cas, merci pour l'effort julp!

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Je suis allé un peu vite en besogne : le fait de mettre dans le filtre ou=X ne concerne que l'objet en lui-même (présence de l'attribut et correspondance de valeur), ça n'a rien à voir avec ses parents. Par contre, d'après cette documentation, il serait possible d'utiliser les filtres étendus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $filtre = "(&(|(ou:dn:=user)(ou:dn:=contact))(|(mail=$recherche)(cn=$recherche)))";
    (Je n'ai plus souvenir si l'attribut OU est sensible à la casse ou non).


    Mes excuses, Julp.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo