Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1243 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] Recherches parallèles LDAP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] Recherches parallèles LDAP

n°1628490
bernardmin​et
Posté le 22-10-2007 à 11:44:42  profilanswer
 

Bonjour à tous !
 
Voici mon problème:
 
Je voudrais que mon moteur de recherche php LDAP aille taper dans 2 branches différentes.
 
Je veux éviter d' enchainer 2 requetes ldap_search à la suite et j'ai vu sur doc php que l'on pouvait effectuer
des recherches parallele en utilisant des tableaux dans la fonction ldap_search (j'utiliserai un tableau à 2 entrées pour le DN).  
 
Mais pour l'instant tout ce que j'ai testé ne marche pas et je n'ai trouvé aucune doc à ce sujet...
 
Est-ce qu'une bonne âme pourrait m'eclairer ?
 
Voici ce que j'ai essayé de faire (j'ai pas du bien comprendre le fonctionnement de la chose):
 

Code :
  1. $adAnnuaire="titi";
  2. $brancheOU[0]="ou=branche0,ou=...,o=...,c=...";
  3. $brancheOU[1]="ou=branche1,ou=...,o=...,c=...";
  4. $ds=@ldap_connect(titi);
  5. $ds_tab[0]=@ldap_connect($adAnnuaire);
  6. $ds_tab[1]=@ldap_connect($adAnnuaire);
  7. $r=ldap_bind($ds, $ldaprdn, $ldappass);   
  8. $sr=ldap_search($ds, $brancheOU, $filtre, $tabChamps);


 
merci d'avance ;)


Message édité par bernardminet le 23-10-2007 à 10:01:54
mood
Publicité
Posté le 22-10-2007 à 11:44:42  profilanswer
 

n°1628605
skeye
Posté le 22-10-2007 à 14:26:02  profilanswer
 

http://fr3.php.net/manual/fr/function.ldap-search.php
 

Citation :

Depuis PHP 4.0.5, il est possible de faire des recherches parallèles. Pour cela, vous devez utiliser un tableau de ressources de connexion comme premier argument, au lieu d'une ressource simple. Si vous ne voulez pas utiliser le même dossier de base DN et le même filtre pour toutes les recherches, vous pouvez aussi utiliser un tableau de DN et de filtres. Ces tableaux doivent alors être de la même taille que le tableau de ressources de connexion : la première entrée du tableau de ressources sera utilisée avec le premier DN et le premier filtre, etc. Lorsque vous faites une recherche parallèle, un tableau de résultats est retourné, sauf en cas d'erreur, auquel cas l'entrée contiendra FALSE. C'est très proche du comportement habituel, hormis le fait qu'un résultat est toujours retourné lorsqu'une recherche est faite. Il y a de rares cas où une recherche renvoie FALSE, alors qu'une autre en parallèle retourne un identifiant.


 
[:dawa]


---------------
Can't buy what I want because it's free -
n°1628657
bernardmin​et
Posté le 22-10-2007 à 15:20:04  profilanswer
 

Merci je sais lire. (par contre je sais pas si j'ai compris :) )
 
Vu que je souhaite avoir 2 DN differentes j'ai fait un tableau DS à 2 entrée

n°1628658
skeye
Posté le 22-10-2007 à 15:20:50  profilanswer
 

bernardminet a écrit :

Merci je sais lire. (par contre je sais pas si j'ai compris :) )
 
Vu que je souhaite avoir 2 DN differentes j'ai fait un tableau DS à 2 entrée


...et tu ne l'utilises pas.[:dawa]


---------------
Can't buy what I want because it's free -
n°1628667
bernardmin​et
Posté le 22-10-2007 à 15:32:56  profilanswer
 

Exact :)
 
donc :
 

Code :
  1. $adAnnuaire="titi";
  2. $ds_tab[0]=@ldap_connect($adAnnuaire);
  3. $ds_tab[1]=@ldap_connect($adAnnuaire);
  4. $brancheOU[0]="ou=branche0,ou=...,o=...,c=...";
  5. $brancheOU[1]="ou=branche1,ou=...,o=...,c=...";
  6. $filtre[0]="cn='....'";
  7. $filtre[1]="cn='....'";
  8. $r=ldap_bind($ds, $ldaprdn, $ldappass); 
  9. $sr=ldap_search($ds_tab, $brancheOU, $filtre, $tabChamps);


 
Ca devrait marcher ?
 
Car il me sort maintenant un

Code :
  1. ldap_get_entries(): supplied argument is not a valid ldap result resource in

Message cité 1 fois
Message édité par bernardminet le 22-10-2007 à 15:34:14
n°1628677
skeye
Posté le 22-10-2007 à 15:47:14  profilanswer
 

bernardminet a écrit :

Exact :)
 
donc :
 

Code :
  1. $adAnnuaire="titi";
  2. $ds_tab[0]=@ldap_connect($adAnnuaire);
  3. $ds_tab[1]=@ldap_connect($adAnnuaire);
  4. $brancheOU[0]="ou=branche0,ou=...,o=...,c=...";
  5. $brancheOU[1]="ou=branche1,ou=...,o=...,c=...";
  6. $filtre[0]="cn='....'";
  7. $filtre[1]="cn='....'";
  8. $r=ldap_bind($ds, $ldaprdn, $ldappass); 
  9. $sr=ldap_search($ds_tab, $brancheOU, $filtre, $tabChamps);


 
Ca devrait marcher ?
 
Car il me sort maintenant un

Code :
  1. ldap_get_entries(): supplied argument is not a valid ldap result resource in



 
montre la ligne du ldap_get_entries...


---------------
Can't buy what I want because it's free -
n°1628698
bernardmin​et
Posté le 22-10-2007 à 16:05:49  profilanswer
 

Code :
  1. $infos=ldap_get_entries($ds_tab, $sr)

Message cité 1 fois
Message édité par bernardminet le 22-10-2007 à 16:06:00
n°1628704
skeye
Posté le 22-10-2007 à 16:08:48  profilanswer
 

bernardminet a écrit :

Code :
  1. $infos=ldap_get_entries($ds_tab, $sr)



http://fr.php.net/manual/fr/functi [...] ntries.php
 

Citation :

Liste de paramètres
 
link_identifier
 
    Un identifiant de lien LDAP, retourné par la fonction ldap_connect().  


 
[:dawa]


---------------
Can't buy what I want because it's free -
n°1628710
bernardmin​et
Posté le 22-10-2007 à 16:13:05  profilanswer
 

Si j'utilise en link_identifier un simple "ldap_connect($adAnnuaire);" (et pas le tableau $ds_tab) il me sort en erreur :
 

Code :
  1. supplied argument is not a valid ldap result resource in

n°1628712
skeye
Posté le 22-10-2007 à 16:15:12  profilanswer
 

Et si tu utilises un des éléments de ton tableau ds_tab?[:dawao]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 22-10-2007 à 16:15:12  profilanswer
 

n°1628714
bernardmin​et
Posté le 22-10-2007 à 16:17:27  profilanswer
 

pareil que ca soit ds_tab[0] ou ds_tab[1]...

n°1628720
skeye
Posté le 22-10-2007 à 16:22:55  profilanswer
 

ah tiens, j'avais mal lu ton message d'erreur...c'est $sr le problème qui remonte, lui aussi c'est un tableau...


Message édité par skeye le 22-10-2007 à 16:23:30

---------------
Can't buy what I want because it's free -
n°1628725
bernardmin​et
Posté le 22-10-2007 à 16:29:15  profilanswer
 

Ce que je comprends pas ce que meme dans une recherche simple le $sr retourné par ldap_search est un tableau

Message cité 1 fois
Message édité par bernardminet le 22-10-2007 à 16:29:43
n°1628727
skeye
Posté le 22-10-2007 à 16:30:16  profilanswer
 

bernardminet a écrit :

Ce que je comprends pas ce que meme dans une recherche simple le $sr retourné par ldap_search est un tableau


non, c'est une ressource.

Citation :

resource ldap_search ( resource $link_identifier, string $base_dn, string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref]]]]] )

 


Valeurs de retour

 

Retourne un identifiant de recherche ou FALSE si une erreur survient.


Message édité par skeye le 22-10-2007 à 16:30:46

---------------
Can't buy what I want because it's free -
n°1628738
bernardmin​et
Posté le 22-10-2007 à 16:41:53  profilanswer
 

Ok merci de ton aide je viens de trouver.
 
Le ldap_search me revoie en fait un tableau de 2 ressources dans mon cas. Donc pour les récupérer il me faudra 2 variables $info qui recuperent $sr[0] et $sr[1] et les concatene en 1 seul tableau.


Message édité par bernardminet le 22-10-2007 à 16:42:17
n°1628754
skeye
Posté le 22-10-2007 à 16:59:02  profilanswer
 

La clé reste la lecture de la doc...


---------------
Can't buy what I want because it's free -
n°1629088
bernardmin​et
Posté le 23-10-2007 à 10:01:26  profilanswer
 

Débutant dans le PHP c'est quand même pas évident de décrypter les docs.
 
Tu m'as bien aidé :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] Recherches parallèles LDAP

 

Sujets relatifs
[resolu]Affichier resultat de ma requete dans un cadre de ma page PHP[resolu] recuperer le flux audio d'un lecteur flash ?
[Résolu]Alignement...[Résolu] Envoyer mail en perl avec authentification
[debutant][résolu]C++ et QT4...Conversion de type??zippage de fichiers et répertoires dans plusieurs fichiers zip (Résolu
Recherches valeur dans tableau => indication position (macro)[VBA Excel] Appliquer couleur sur une partie de chaine
[RESOLU]évènements sourisafficher du texte avec SDL_ttf [resolu]
Plus de sujets relatifs à : [résolu] Recherches parallèles LDAP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR