bonjour,
puisque j'ai eu du succès avec la 1ère partie de mon script, je reviens avec la suite...
Je dois ajouter un contact dans un groupe. Je pensais faire ça de la manière suivante, je fais une recherche sur mon groupe via la 'class=group', je lui modifie la valeur de l'attribut 'member' pour lui en rajouter 1.
Mais c'est là que ça se complique parce que member est un array et que je ne vois pas comment lui ajouter un élément. Ma solution fonctionne pour ajouter un mail mais si l'élément est un array ça cassse....

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
<?php
// Structure d'une commande simple :
// connexion, lien, recherche, interpretation de la recherche
// résultat, déconnexion
echo "<h3>LDAP query test</h3><br>";
 
  $ldap_user ="CN=Administrateur";
  $ldap_pass = "XXX";
 
echo "Connexion ...";
$ds=ldap_connect("XXX.XXX.XXX.XXX"); // Doit être un serveur LDAP valide!
echo "Résultat de la connexion : ".$ds."<p>";
if ($ds) {
echo "Lien ...";
 
  $$r= ldap_bind($ds, $ldap_user, $ldap_pass);
 
 
echo "Lien résultat est ".$r."<p>";
echo "Recherche de (cn=Testtaires*) ...";
// Recherche dans les noms
$sr=ldap_search($ds,"DC=win,DC=info,DC=pcf", "cn=Testtaires");
echo "Résultat : ".$sr."<p>";
echo "Nombre d'entrée retournée : ".ldap_count_entries($ds,$sr)."<p>";
echo "Lecture des entrées...<p>";
$info = ldap_get_entries($ds, $sr);
 
echo "Data for ".$info["count"]." items returned:<p>";
for ($i=0; $i<$info["count"]; $i++)
  {
    echo "dn vaut : ". $info[$i]["dn"] ."<br>";
    echo "première entrée cn vaut : ". $info[$i]["cn"][0] ."<br>";
    echo "premièr membre vaut: ". $info[$i]["member"][0] ."<p>";
    echo "tot en info: " . $info[$i]["member"]["count"];
 
    $TotMember = $info[$i]["member"]["count"];
    for ($j=0; $j<$info[$i]["member"]["count"]; $j++)
      {
      echo "<br>J: " .$j;
       echo $info[$i]["member"][$j]."<br>";
       $modif["add"]["member"][$j]="1";
 
      }
  }
  echo "<br>tot: ".$TotMember."<br>";
 
 $modif["add"]["member"][$TotMember]="CN=eich her,OU=ouParlementairesTest,OU=ouContacts,DC=win,DC=info,DC=toto";
$result=ldap_modify($ds,"CN=TestParlementaires,OU=ouMail,OU=ouGroups,DC=win,DC=info,DC=toto",$modif);
 
  echo "<br>Déconnexion ";
  ldap_close($ds);
}
else
 
{
  echo "<h4>Impossible de se connecter à un serveur LDAP </h4>";
}
?>
j'essaie de compter le nombre d'élément de l'array member, ça c'est ok
Code : Sélectionner tout - Visualiser dans une fenêtre à part
  echo "<br>tot: ".$TotMember."<br>";
et pour rajouter mon élément je prends l'indice
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$modif["add"]["member"][1]="CN=eich her,OU=ouParlementairesTest,OU=ouContacts,DC=win,DC=info,DC=toto";
mais il me donne ceci...
LDAP query test

Connexion ...Résultat de la connexion : Resource id #2

Lien ...Lien résultat est

Recherche de (cn=TestParlementaires*) ...Résultat : Resource id #3

Nombre d'entrée retournée : 1

Lecture des entrées...

Data for 1 items returned:

dn vaut : CN=TestParlementaires,OU=ouMail,OU=ouGroups,DC=win,DC=info,DC=pcf
première entrée cn vaut : TestParlementaires
premièr membre vaut:

tot en info:
tot:

Warning: ldap_modify() [function.ldap-modify]: Value array must have consecutive indices 0, 1, ... in /var/www/test/ldap0.php on line 53

Déconnexion


et je sèche sur ce "Value array must have consecutive indices 0, 1, ..."

merci et bon we !