Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/08/2007, 17h29   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 5
Points : 2
Points : 2
Par défaut [LDAP] Problème d'utilisation combinée de ldap_get_entries() et ldap_add()

Bonjour,

J'ai actuellement un probleme concernant l'utilisation de l'objet obtenu apres un ldap_get_entries(), je m'explique:

j'utilise la fonction ldap_search(), pour, comme son nom l'indique, rechercher une entrée dans un annuaire LDAP j'utilise l'objet renvoyé avec la fonction ldap_get_entries() afin d'obtenir tout les attributs de cette entrée.

Puis j'utilise la fonction ldap_add() pour ajouter ces informations obtenues dans un second annuaire LDAP.
Cette fonction prend en parametre un tableau du type : $info[i][j][k]

L'objet renvoyer par la fonction ldap_get_entries() est également un tableau du type $info[i][j][k].

ex :
Code :
1
2
3
4
 
$sr = ldap_search($instance->connect,$instance->base, $partial_dn[0]);  
$info = ldap_get_entries ($instance->connect, $sr);
$r = ldap_add ($instance2->connect, $instance2->base, $info);
je precise également que
Code :
echo $info['count']; //affiche 1 donc que le tableau n'est composé que d'une seul entrée.
Oui mais voila en utilisant l'objet renvoyer par ldap_get_entries() avec la fonction ldap_add() j'obtient :
Citation:
Warning: ldap_add(): Unknown attribute in the data
et rien de rajouter dans mon second annuaire.

Ma question est donc la suivante :

Peut-on utiliser l'objet retourner par ldap_get_entries() avec la fonction ldap_add() et si oui comment?


Merci.
Izanaghi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 19h37   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
De mémoire : non pas directement car le résultat de ldap_get_entries comporte des index supplémentaires dans le tableau retourné (count) et elle ne retourne pas forcément qu'un seul objet. Vous pourriez faire une copie partielle/nettoyée de ce tableau voir utiliser d'autres fonctions - ldap_*_(entry|attributes?).

Votre "copie" peut éventuellement être faite de manière automatique via des systèmes de réplication voir par un export/import au format LDIF, bien que cette dernière solution ne présente pour vous guère d'intérêt.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 19h59   #3
Invité de passage
 
Inscription : juillet 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 5
Points : 2
Points : 2
merci pour la réponse rapide.

Il ne me reste donc plus qu'à bricoler tout ça.

Toutefois si quelqu'un a déjà solutionner ca, ce serait sympa qu'il m'en epargne.

C'etait mon premier poste et surement pas le dernier ^^
Izanaghi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 15h10   #4
Invité de passage
 
Inscription : juillet 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 5
Points : 2
Points : 2
Par défaut solution possible

Pour les gens que ca interesse voici ma solution :

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
 
function convertion($info)
{
	$foo=array();
	foreach ($info[0] as $clef => $valeur) 
	{
		if(is_array($valeur))
		{
			array_shift($valeur);
			foreach ($valeur as $clef2 => $valeur2) 
			{
				if(count($valeur)>1)
				{
					for ($i = 0; $i < count($valeur); $i++)
					{
						$foo[$clef][$i]=$valeur[$i];
					}
				}else{
					$foo[$clef]=$valeur2;
				}
			}
		}
	}
	return $foo;		
}
voila enjoy !!
Izanaghi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h19.


 
 
 
 
Partenaires

Hébergement Web