• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

ldap_add erzeugt 'Constraint violation'

hambam

Neues Mitglied
Hallo zusammen,

ich versuche einen neuen Benutzer im Novell eDirectory über LDAP anzulegen.
Existierende Benutzer kann ich schon fehlerfrei bearbeiten und alle Änderungen einschließlich dem Kennwort speichern.
Nur beim Neuanlegen eines Benutzers funktioniert was nicht und ich erhalte die Fehlermeldung beim Add: Constraint violation.
Leider ohne genauere Informationen.

Ich hab leider keinen Schimmer, wo der Fehler liegen könnte. Vielleicht hat jemand eine Idee?

Hier der Test-Code:

PHP:
    echo date("H:i:s");

    $ds = ldap_connect($LDAP_SERVER);
    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

    $r=ldap_bind($ds,$LDAP_USER,$LDAP_PASS);

    $userlogin = "testuser";
    $userdn = "cn=testuser,ou=TEST,ou=Persons,o=PORTAL";

    $ldap_info['uid']="testuser";
    $ldap_info['dn']=$userdn;
    $ldap_info['sn']="Code";
    $ldap_info['givenname']="Test";
    $ldap_info['fullname']="Test Code";
    $ldap_info['mail']="[email protected]";
    $ldap_info['cn']=array("testuser","TEST");
    $ldap_info['street']="Teststrasse 1";
    $ldap_info['postalcode']="33333";
    $ldap_info['physicaldeliveryofficename']="Test Stadt";
    $ldap_info['preferredlanguage']="DE";
    $ldap_info['generationqualifier']="1111";
    $ldap_info['employeenumber']="2222";

    $ldap_info["objectclass"][0]="Person";
    $ldap_info["objectclass"][1]="inetOrgPerson";
    $ldap_info["objectclass"][2]="organizationalPerson";
    $ldap_info["objectclass"][3]="ndsLoginProperties";
    $ldap_info["objectclass"][4]="Top";

    $ldap_info['userPassword']="test1234";

    if (ldap_add($ds, $userdn, $ldap_info)) {
        echo "erfolgreich gespeichert";
    } else {
        echo "Speichern fehlgeschlagen.";
    }
 
Wenn ich mich recht entsinne ist die uid ein eineindeutiges Feld. Wenn Du also 2 Nutzer mit der selben uid anlegst, sollte es zu o.g. Fehlermeldung kommen.
 
Den Inhalt des Felds uid kann ich ausschließen, auch wenn vorher schon sicher war, dass es bisher keine uid 'testuser' gibt, habe ich es nochmals mit einem eindeutigen Namen versucht, der garantiert noch nie verwendet wurde (test12062012user).
Kann mir vielleicht einer sagen, welche Felder Minimum sind? Dann könnte ich für die Fehlersuche mal einige mögliche Fehlerquellen sprich einige Felder ausschließen.
 
Ich hab die Lösung nun selber gefunden.... Try & Error Methode.
Letztlich brauchte ich nur die Zeile
$ldap_info['dn']=$userdn;
zu entfernen.
 
Zurück
Oben