ldap_modify Problem

Hallo zusammen,

ich steh mal wieder auf dem Schlauch und finde nichts vernünftiges im Internet an Hilfe, daher wende ich mich mal wieder an euch.

Folgendes Problem ------------------------------------

LDAP-Connections
$ldapBase = ‚O=abc‘;
$username = ‚uid=admin‘;
$password = ‚xxxx‘;

Suche nach einem Account funktioniert -----------------

$accountnumber=12345678

$ldapSearch = ldap_search($ldapConn, $ldapBase, „(accountnumber=“ . $accountnumber . „)“);
$ldapResults = ldap_get_entries($ldapConn, $ldapSearch);

Ergebnisse werden auch geliefert ----------------------

accountnumber: 12345678
accountlocked: Y

Nun möchte ich den Eintrag verändern -----------------

$entry[„accountlocked“] = „N“;

ldap_modify ($ldapConn, „O=abc, accountnumber=12345678“, $entry);

Bekomme immer folgenden Fehler -----------------------

Warning: ldap_modify() [function.ldap-modify]: Modify: No such object in D:\wwwroot\dev\ldap_test\ldap.php on line 29

Hat jemand eine Idee was hier falsch ist.
Hab schon diverse andere Sachen probiert … aber nichts funzt.

Danke und Gruß
Lars

Hab das selbst noch nie benutzt, aber wenn ich die doku richtig verstanden hab muss es

$entry[„accountlocked“][0] = „N“;

heißen

Gruß
Phillip

HI Phillip,

du das hab ich alles schon probiert.

So …

$entry[„accountlocked“][0] = array( 0 => ‚N‘ );

oder so …

$entry[„accountlocked“] = array( 0 => ‚N‘ );

oder so …

$entry[„accountlocked“][0] = „N“;

oder so …

$entry[„accountlocked“] = „N“;

nichts funzt… brauche dringend hilfe damit!

Danke und Gruß
Lars

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

doch, wie ist deine ldap struktur aufgebaut

ergo hat der user auch rechte zum änder, weil suchen kann jeder, aber ändern nicht jeder :smile:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ist die suche auch eindeutig ?? , sonst gehts nicht

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ja hat er, denn ich benutze den user auch über den ldap-administrator um was zu ändern - er hat also schreibrechte.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hab´s auch schon über die uid versucht welche ja eineindeutig ist.
ldap_modify ($ldapConn, „o=abc, uid=135454143848“, $entry);

funzt aber auch nicht

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

folgendes geht auch nicht

ldap_modify ($ldapConn, ‚o=abc‘, ‚uid=134385458343‘, $entry);

FM:

Warning: Wrong parameter count for ldap_modify() in …

das ja auch lögisch :smile:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

gib mal ein ansatz deiner strucktur

so das ich den richtigen dn sehe und das nachvollziehen kann.

weil es muss defenietiv an was anderem liegen.
mindestens sollte ja
$leer=array();
ldap_modify($con,‚xxxxxxxx‘,$leer)
ein löschen bewirken, wobei für xxxxx natürlich der richtige dn eingetragen werden muss .

Hallo,

ldap_modify ($ldapConn, „O=abc, accountnumber=12345678“,
$entry);

Bekomme immer folgenden Fehler -----------------------

Warning: ldap_modify() [function.ldap-modify]: Modify: No such
object in D:\wwwroot\dev\ldap_test\ldap.php on line 29

Schon

ldap_modify ($ldapConn, „accountnumber=12345678, O=abc“, $entry);

versucht ? LDAP baut den Pfad soweit ich weiss genau andersrum auf.
Ansonsten solltest du eigentlich schon im dem Suchergebnis die DN des Objektes mit bekommen haben, hast du dir $entry das mal komplett ausgeben lassen ?

Alex