Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité de passage
    Femme Profil pro
    Étudiant
    Inscrit en
    décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2012
    Messages : 4
    Points : 1
    Points
    1

    Par défaut Problème récupération de données LDAP Php

    Bonjour, je suis nouvelle sur ce forum. Je suis en 3ème année d'un apprentissage en informatique et je dois effectuer un projet de fin de formation. J'ai choisi le PHP et il m'est donc nécessaire dans le cadre de mon projet de récupérer des informations de l'active directory de mon école pour avoir une liste des classes dans une pickilst afin de faciliter la sélection de celles ci.

    Les problème est que je ne sais pas comment récupérer la liste des classes après avoir fait mes recherches et vérifié que mes recherches retournent bien le bon nombre d'enregistrement (j'utilise en même temps Softerra Browser connecté à l'active directory pour tester les filtres avant de les mettre dans mon code) mais le nom ne s'affiche pas.



    Voici donc mon code, sans les informations d’authentification qui elles sont justes.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
       //Connexion à l'AD de l'école
       $connexion = ldap_connect("ldap.XX.XX.XX",389);
       $picklist="";
       $i=0;
       $i2=0;
       // Teste si la connexion a lieu ou pas
       if(!($connexion))
       {
       die("Erreur de connexion");
       }
       else
       {
          ldap_set_option($connexion, LDAP_OPT_PROTOCOL_VERSION, 3);
          ldap_set_option($connexion, LDAP_OPT_REFERRALS, 0);
          ldap_set_option($connexion, LDAP_OPT_SIZELIMIT, 0);
    
          //Autentification au serveur LDAP
          if(@ldap_bind($connexion, 'XX', 'XX'))
          {
              $dn = "OU=Classes,OU=ET,OU=XX,DC=XX,DC=XX,DC=ch";
              $filtre = "(ou=T*)";
              $cible = array("name");
              $ldapRes=ldap_search($connexion, $dn, $filtre, $cible,0,0);
              $comptage=ldap_count_entries($connexion, $ldapRes);
    
              //filtre tant que $i est égal au nombre de section trouvé avant.
                while($i<=$comptage)
                 {
                     //Filtre pour récupérer uniquement les classes (OU) qui commencent par 1T ou 2T (Il n'y a pas d'autres années pour les techniciens)
                     $filtre2= "(|(ou=1T*)(ou=2T*))";
                     $cible2 = array("name");
                     $ldapRes2 = ldap_search($connexion, $dn, $filtre2, $cible2,0,0);
                     $comptage2 = ldap_count_entries($connexion, $ldapRes2);
                     $i++;
    
                       while($i2<=$comptage2)
                      {
                          //Filtre pour récupérer les noms des élèves des classes trouvées juste au dessus: Pas encore fonctionnel.
                          $filtre3 = "(&(title=Apprenant)(|(physicalDeliveryOfficeName=1T*)(physicalDeliveryOfficeName=2T*)))";
                          $cible3 = array("sn","cn");
                          $ldapRes3 = ldap_search($connexion, $dn, $filtre3, $cible3,0,0);
                          $comptage3 = ldap_count_entries($connexion, $ldapRes3);
                          $i2++;
                      }
                 }
          }
          //echo de test afin de voir si le filtre est correct et qu'il
          //affiche bien le nombre de classes   : OK
          echo "$comptage<br />";
          echo "$comptage2<br />";
          echo "$comptage3<br />";
    
    
    Le problème se trouve à partir d'ici
          for($j=0;$j<=$comptage2;$j++)
                                {
                                $tab1 = ldap_get_entries($connexion,$ldapRes2);
                                $classe= $tab1[0]["name"];
                                //Rempli un tableau avec les valeurs récupérées dans le filtre pour connaître toutes les classes de techniciens.
                                $picklist .="<option value=\"".$tab1[0]."\"\>".$classe."</option>";
                                }
        }
    
    ?>
    Affichage dans L'html
     <form name="classe" method="post">
         <select name="listeclasse" size="1">
         <?php
         echo $picklist;
         ?>
         </select>
       </form>
    Merci d'avance pour votre aide!

  2. #2
    Membre confirmé
    Responsable de service informatique
    Inscrit en
    août 2006
    Messages
    174
    Détails du profil
    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : août 2006
    Messages : 174
    Points : 205
    Points
    205

    Par défaut

    Bonjour,

    Fais un var_dump de ton tableau $tab1 car apparemment ldap_get_entries retourne un tableau.

    Et vois si ça correspond à ce que tu recherches comme structure.

    Natso

  3. #3
    Invité de passage
    Femme Profil pro
    Étudiant
    Inscrit en
    décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2012
    Messages : 4
    Points : 1
    Points
    1

    Par défaut Merci

    Problème réglé!! Merci de ton aide, ça m'a aidé à trouver mon erreur!!

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •