Ldap_add (): Add: object class violation error

When I try to add an OpenDS attribute through PHP, I get the following error:

ldap_add (): Add: object class violation

Please, help.

Here is my code

<?php $ldapconfig['host'] = 'PC100'; $ldapconfig['port'] = 1389; $ldapconfig['basedn'] = 'dc=company,dc=com'; $ds=ldap_connect($ldapconfig['host'], $ldapconfig['port']); $password=1; $username="cn=Directory Manager"; if ($bind=ldap_bind($ds, $username, $password)) { echo("Login correct"); ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); // IMPORTANT $dn = "cn=roshan1,dc=example,dc=com"; //$newuser["objectclass"] = "inetOrgPerson"; //$newuser["cn"] = "new1"; //$newuser["sn"] = "user"; $ldaprecord['cn'] = "roshan1"; $ldaprecord['givenName'] = "mkljl"; $ldaprecord['sn'] = "roshan"; $ldaprecord['objectclass'] = "inetOrgPerson"; $ldaprecord['mail'] = " lkl@fh.com "; $ldaprecord['mmmm'] = "77878"; // add data to directory $r = ldap_add($ds, $dn, $ldaprecord); } else { echo("Unable to bind to server.</br>"); } ?> 

If I remove $ldaprecord['mmmm'] = "77878"; from the code, it works great. How to add a new attribute?

+4
source share
1 answer

Hmm, it looks like you are trying to set objectclass to inetOrgPerson , but you should also set other top classes from which inetOrgPerson distributed - this will be top and person possible ...

So:

 $ldaprecord['cn'] = "roshan1"; $ldaprecord['givenName'] = "mkljl"; $ldaprecord['sn'] = "roshan"; $ldaprecord['objectclass'][0] = "top"; $ldaprecord['objectclass'][1] = "person"; $ldaprecord['objectclass'][2] = "inetOrgPerson"; $ldaprecord['mail'] = " lkl@fh.com "; $ldaprecord['mmmm'] = "77878"; 
+5
source

All Articles