[PHP/LDAP] - Récupérer TOUS les attributs

Fermé
Vince - 23 juil. 2003 à 12:15
 Guilty Glitch - 24 juil. 2015 à 11:57
Bonjour,

je cherche à obtenir TOUS les champs d'une personne, même (et surtout) les champs calculés comme createTimestamp).

Lorsque je fais :
ldap_search($cnx, $rech_dn, $filter, $attributes, $types, $nb_res, $time, $deref);

si je mets
$attributes = array();

ces valeurs n'apparaissent pas. Je suis obligé de toutes les ajouter une par une dans $attributes
N'y a-t-il pas un moyen de récupérer toutes les valeurs sans les spécifier 1 par 1 ???

Merci :-)

4 réponses

Même problème.
Solution trouvée:
ldap_search(... , $filter, array('*','createtimestamp','modifytimestamp'));

* pour tous + les spéciaux qu'on veut :)
3
Guilty Glitch
24 juil. 2015 à 11:57
En effet, * retourne tous les attributs 'visibles', alors que + retourne tous les attributs opérationnels.
Donc pour avoir tous les attributs (visibles et opérationnels) passez dans le ldap_search:
 array('*','+')
0
Jean-François Pillou
Messages postés
18668
Date d'inscription
lundi 15 février 1999
Statut
Webmaster
Dernière intervention
12 janvier 2022
63 274
23 juil. 2003 à 12:29
foreach($attributes as $key => $value) echo $key." - ".$value;


0
euh... non désolé mais c'est pas bon... :(

ton code me liste les noms des attributs que j'ai spécifié dans $attributes, or ce que je cherche c'est un moyen de dire que $attributes contienne tous les attributs disponibles (quelque chose du style
$attributes = ALL
au lieu d'écrire
$attributes = array("uid", "mail", "mailhost", "createtimestamp", "modifytimestamp", "creatorsname", "modifiersname", "subschemasubentry");


aurais-tu une idée ?
Merci
Vincent
0
Jean-François Pillou
Messages postés
18668
Date d'inscription
lundi 15 février 1999
Statut
Webmaster
Dernière intervention
12 janvier 2022
63 274 > vince
23 juil. 2003 à 14:15
A tout hasard est-ce que les wildcards fonctionnent ?


$attributes = array("*");

0
Ah, un bon point ! :-D

Malheureusement j'ai l'impression qu' * fonctionne pour les principaux attributs utilisateurs mais pas pour les principaux attributs opérationnels... :-(

(le ldap_search() me retourne bien mail, uid (...) mais pas createtimestamp & Cie...)

cf. : http://www.commentcamarche.net/ldap/ldapinfo.php3

Donc c'est déjà ça de gagné ;-)
Mais c'est pas encore tout à fait ça... :-(
0
Jean-François Pillou
Messages postés
18668
Date d'inscription
lundi 15 février 1999
Statut
Webmaster
Dernière intervention
12 janvier 2022
63 274 > vince
23 juil. 2003 à 16:03
Pour info tout de même l'attribut "Attributes" est facultatif, par défaut il cherche sur tous les attributs, il te suffit donc à mon avis de ne rien mettre du tout...

0
vince34
Messages postés
2
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
23 juillet 2003
> vince
23 juil. 2003 à 16:13
oui je suis d'accord :-)

mais du coup tu vas peut-être pouvoir m'éclairer sur un point :

la fonction ldap_search possède 8 attributs :
resource ldap_search ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])


je pourrais effectivement m'arrêter aux 3 attributs obligatoires, mais vu que je veux spécifier une valeur au dernier attribut (deref) je suis obligé de renseigner tous les attributs jusqu'à lui ; du moins je crois. Est-ce que c'est bien le cas ?

Comment ferais-tu à ma place pour spécifier juste les 3 premiers et le dernier stp ?

Merci et on pourra en rester là ! :-D
0
vince34
Messages postés
2
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
23 juillet 2003

23 juil. 2003 à 17:29
Ben non ça marche pas (ni l'un ni l'autre), il me dit que le paramètre attendu est du type tableau ! C'est pour ça que je mettais
$attributes = array();


tant pis, et merci ! :-)
0
print_r($attributes) ;

foreach($attributes as $key => $value) {
echo 'Cle : '.$key.' -- Valeur : '.$value.'<br/>' ;
}
0