Probleme mit ldap_add()
Achim
- php
Hallo ich möchte für einen Server eine kleine Benutzerverwaltung schreiben, welche das anlegen von neuen Benutzern im LDAP-Baum vereinfachen bzw standardisieren soll.
wenn ich mit [PHP]
$ds=@ldap_connect("localhost");
@ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
$sr=ldap_search($ds,"ou=people,dc=r***r,dc=de", "uid=$uid");
$data=ldap_get_entries($ds, $sr);
[/PHP]
einen Eintrag aus dem LDAP auslese dann sieht der so
[CODE]Array
(
[count] => 1
[0] => Array
(
[sn] => Array
(
[count] => 1
[0] => testname
)
[0] => sn
[givenname] => Array
(
[count] => 1
[0] => testvorname
)
[1] => givenname
[uid] => Array
(
[count] => 1
[0] => test
)
[2] => uid
[cn] => Array
(
[count] => 1
[0] => testvorname testname
)
[3] => cn
[mail] => Array
(
[count] => 1
[0] => test@r***r.de
)
[4] => mail
[gosamailserver] => Array
(
[count] => 1
[0] => r***r.de
)
[5] => gosamailserver
[gosamailquota] => Array
(
[count] => 1
[0] => 0
)
[6] => gosamailquota
[gosamaildeliverymode] => Array
(
[count] => 1
[0] => [L]
)
[7] => gosamaildeliverymode
[gosaspamsortlevel] => Array
(
[count] => 1
[0] => 0
)
[8] => gosaspamsortlevel
[gosaspammailbox] => Array
(
[count] => 1
[0] => INBOX
)
[9] => gosaspammailbox
[objectclass] => Array
(
[count] => 6
[0] => gosaMailAccount
[1] => top
[2] => person
[3] => organizationalPerson
[4] => inetOrgPerson
[5] => gosaAccount
)
[10] => objectclass
[lmpassword] => Array
(
[count] => 1
[0] => CCF9155E3E7DB453AAD3B435B51404EE
)
[11] => lmpassword
[ntpassword] => Array
(
[count] => 1
[0] => 3DBDE697D71690A769204BEB12283678
)
[12] => ntpassword
[pwdlastset] => Array
(
[count] => 1
[0] => 1209402130
)
[13] => pwdlastset
[count] => 14
[dn] => uid=test,ou=people,dc=r***r,dc=de
)
)[/CODE] aus.
Nun versuche ich mit
[PHP]
$ds = ldap_connect("localhost") or die ("Verbindung konnte nicht aufgebaut werden");
ldap_set_option($ds,LDAP_OPT_PROTOCOL_VERSION,3);
ldap_bind($ds,'cn=admin,dc=r***r,dc=de','***');
$user["sn"] ="meier";
$user["givename"] ="michael";
$user["cn"] ="michael meier";
$user["uid"] ="michael.meier";
$user["mail"] ="michael.meier@r***r.de";
$user["uid"] ="michaelmeier";
$user["objectClass"]="gosaMailAccount";
$user["gosaMailDeliveryMode"]="[L]";
$user["gosaMailServer"]="rotkreuzserver.de";
$user["userPassword"]="123";
$user["pwdLastSet"]=time();
$dn ="uid=michael.meier,ou=people,dc=r***r,dc=de";
ldap_add($ds, $dn, $user);
[/PHP]
einen neuen Eintrag zu erzeugen. Ich hab auch schon viele andere Sache ausprobiert... aber alles brachte nix, irgendwas mach ich falsch...
Ergebnis war immer:
[CODE]
Warning: ldap_add() [function.ldap-add]: Add: Undefined attribute type[/CODE]
Hat jmd einen Rat oder ein kleines Beispiel was ich ldap_add() übergeben muss damit es geht?
In der Doku hab ich das Beispiel
[PHP]<?php
$ds=ldap_connect("localhost"); // Annahme: der LDAP Server befindet
// sich auf diesem Host
if ($ds) {
// bind mit passendem dn für aktulisierenden Zugriff
$r=ldap_bind($ds,"cn=root, o=Meine Firma, c=DE", "geheim");
// Daten vorbereiten
$info["cn"]="Hans Mustermann";
$info["sn"]="Mustermann";
$info["mail"]="MustermannH@firma.de";
$info["objectclass"]="person";
// hinzufügen der Daten zum Verzeichnis
$r=ldap_add($ds, "cn=Hans Mustermann, o=Meine Firma, c=DE", $info);
ldap_close($ds);
} else {
echo "Verbindung zum LDAP Server nicht möglich!";
}
?>
[/PHP]
gefunden aber das geht auch nicht.
Danke für jede Hilfe und jeden Denkanstoß...
Gruß Achim