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 :

[Système] php et ldap export des utilisateurs selon l'OU


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 4
    Par défaut [Système] php et ldap export des utilisateurs selon l'OU
    Bonsoir,
    je cherche à exporter la liste des utilisateurs (nom prénom login et mail) d'un AD à partir de php. J'ai essayé le couple ldap_search et ldap_get_entries mais je ne réussis pas à obtenir ce que je veux...
    Quelqu'un aurait déjà fait quelque chose dans le genre ?

    Merci beaucoup.

    Goguy

  2. #2
    Membre expérimenté

    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
    Par défaut
    Avez-vous des erreurs ? Si oui, lesquelles ? Pouvez-vous nous donner le code incriminé ?


    Julp.

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 4
    Par défaut
    Bonjour,
    bon en fait, j'ai trouvé... j'avais une mauvaise syntaxe pour identifier mon domaine et mes "OU"...
    Mais un autre problème se pose à moi : comment récupérer (sans les cherche individuellement tjs) les logins, l'état du compte (actif, désactivé), éventuellement la date de création (si cela est possible).
    Voici mon code pour info :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    //Connexion à AD
    require_once('inc/connex/bdd-ldap.conn.php');
    //Action sur l'AD
     
        if ($ldapbind) {
     
        $filter = '(|(uid=*)(cn=*))';
     
    $ldapsearch = ldap_search($ldapconn, $ou_users, $filter);
    $nb=0;
             if ($ldapsearch) {
              $datas = ldap_get_entries($ldapconn, $ldapsearch);
              echo $datas['count']." enregistrements dans l'active directory <BR><HR>";
               $count = $datas['count'];
               for ($i=0;$i<$count;$i++) {
               $nb++;
        $result=ereg_replace("é","é",$datas[$i]['cn'][0]); // Embellissement de l'affichage
                  echo $nb." - ".$result."<HR>";
        }}} else {
            echo "Connexion LDAP échouée";
        }
    Ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $datas[$i]['cn'][0];
    m'affiche le nom et prénom de l'utilisateur.

    Comment récupérer d'autres infos ?
    Voici les 'entrées' valides :
    dn ; cn ; sn ; mail ;
    Mais comment faire pour logins et autres ?

    Merci

    Goguy

  4. #4
    Membre expérimenté

    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
    Par défaut
    Si j'ai bien compris votre question : il vous faut utiliser le paramètre attributes des fonctions de recherche LDAP (ldap_search, ldap_list, ldap_read).

    Je terminerais par une info : les chaînes de caractères sont encodées en UTF-8 dans un annuaire donc je vous recommande d'utiliser utf8_decode (de l'extension xml) au lieu de ereg_replace("é","é", ...) ou bien utiliser directement l'encodage UTF-8 pour vos scripts/pages.


    Julp.

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 4
    Par défaut
    Comment on l'utilise t-on ?
    Si j'ai bien compris votre réponse cela va me servir à voir tout ce que renvoie une fonction ldap_search ? tous les attributs ?

    En ce sui concerne l'encodage, je compte modifier plus tard, j'avais besoin ici de rapiditée pour comprendre ce qui est faisable ou non. Le ereg est une fantaisie

    Merci de votre aide.

    Goguy

  6. #6
    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
    Par défaut
    hello,

    Si tu veux savoir toutes les info que tu peux récupèrer, fais simplement un print_f($datas[0]);

    Comme ça, t'auras toutes les infos disponibles.

    Pour le codage en UTF-8, met simplement :

    header('Content-Type: text/html; charset=UTF-8');

    au debut de ton code.

    ++

  7. #7
    Membre expérimenté

    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
    Par défaut
    Citation Envoyé par goguy
    Comment on l'utilise t-on ?
    Si j'ai bien compris votre réponse cela va me servir à voir tout ce que renvoie une fonction ldap_search ? tous les attributs ?
    Tout dépend comment est utilisé ce paramètre :
    • sa valeur par défaut donc lorsqu'il est omis, permet de récupérer tous les attributs du ou des objets résultants de la recherche
    • si vous ne souhaitez récupérer que des attributs spécifiques (notamment par rapport au nombre d'attributs que peuvent posséder le ou les objets : à comparer au SELECT * en SGBD quand on ne veut récupérer les valeurs que d'un champ), utilisez un tableau qui indique le nom des attributs désirés :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
       
      $ldapsearch = ldap_search($ldapconn, $ou_users, $filter, array('cn', 'sn', 'uid'));


    Citation Envoyé par Yoshi_da_f..k
    Si tu veux savoir toutes les info que tu peux récupèrer, fais simplement un print_f($datas[0]);
    Avec la fonction print_r ça ira beaucoup mieux !


    Julp.

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/07/2011, 22h57
  2. [XL-2010] Macro vba exporter des colonnes selon titres
    Par ron13 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/06/2011, 11h48
  3. LDAP récupération des utilisateurs
    Par melekhb dans le forum WinDev
    Réponses: 4
    Dernier message: 23/09/2010, 12h04
  4. exporter des utilisateurs
    Par nanourene dans le forum Windows Serveur
    Réponses: 9
    Dernier message: 20/05/2008, 19h26
  5. comment faire l'export des données selon une période
    Par hadid dans le forum Administration
    Réponses: 9
    Dernier message: 28/08/2007, 11h30

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