Précédent   Forum du club des développeurs et IT Pro > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/12/2012, 11h55   #1
catou12
Invité de passage
 
Femme
Étudiant
Inscription : 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!
catou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 12h50   #2
mlebeguec
Membre à l'essai
 
Responsable de service informatique
Inscription : août 2006
Messages : 24
Détails du profil
Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Industrie

Informations forums :
Inscription : août 2006
Messages : 24
Points : 21
Points : 21
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
mlebeguec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 14h18   #3
catou12
Invité de passage
 
Femme
Étudiant
Inscription : 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
catou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 12h28.


 
 
 
 
Partenaires

Hébergement Web