无法确定向LDAP条目添加其他属性的正确语法。在验证时,我得到这个数组:
Array
(
[0] => Array
(
[cn] => Array
(
[0] => Vit Kos
)
[shortname] => Array
(
[0] => vit.kos
)
[uid] => Array
(
[0] => vit.kos
)
[mail] => Array
(
[0] => vit.kos@email.com
)
[objectclass] => Array
(
[0] => top
[1] => person
[2] => organizationalPerson
[3] => inetOrgPerson
[4] => dominoPerson
)
[givenname] => Array
(
[0] => Vit
)
[userpassword] => Array
(
[0] => password here
)
[sn] => Array
(
[0] => Kos
)
[localadmin] => Array
(
[0] => CN=#SysHQAdmin
)
[mailaddress] => Array
(
[0] => Vit.Kos@email.com
)
[maildomain] => Array
(
[0] => EMAIL
)
[dn] => CN=Vit Kos,OU=###,O=EMAIL
)
)
需要获得一个额外的属性成员
Array (
[uid] => Array
(
[0] => vit.kos
)
[mail] => Array
(
[0] => vit.kos@email.com
)
[member] => Array
(
[0] => MEMBER HERE
)
)
之前从未使用过LDAP,这对我来说非常困惑。谢谢你的回答。
答案 0 :(得分:2)
要将数据分配给上面检索的目录项,您将使用ldap_modify()
执行“修改”操作。这假设您的数据库模式允许在此对象上使用名为member
的属性 - 它可能不会,您不能简单地将属性添加到任何对象中。当您感觉到它时。
首先,您需要创建属于member
属性的条目,并将它们存储在数组中:
$member = array (
0 => "This is some data",
1 => "This is some more data"
);
为了告诉目录我们要修改哪个对象,我们需要它的DN。我们可以从您之前的搜索/列表/读取操作的结果中得到这个 - 您显示已经检索到的数组(我假设它存储在名为$array
的变量中):
$dn = $array[0]['dn'];
现在我们拥有执行修改操作所需的所有信息(我假设您的连接/绑定LDAP资源保存在名为$ds
的变量中):
$result = ldap_modify($ds, $dn, array('member'=>$member));
在此之后,$result
将是一个布尔值,指示操作是否成功。如果不成功,您可以通过调用:
$error = ldap_error($ds);