我在使用LDAP方面相当不错(这实际上是我的第一个项目),我无法在谷歌上找到可以帮助我的答案...... 所以我的问题是:我正在尝试将php的联系人添加到Windows 2003服务器上的活动目录中。我可以连接到服务器,我也没有ldap_bind的问题。 但是当我运行程序时,我总是得到错误:
警告:ldap_add()[function.ldap-add]:添加:行bla(Blabla)中的操作错误
并且ldap_error也只说“操作错误” 这是非常模糊的,所以我甚至不知道它是服务器或我的代码的问题。 我看到一些线程有类似的问题,服务器不允许匿名访问,但我甚至绑定管理员帐户,但它仍然无法正常工作。
我的代码看起来很像这样:
$ldapcon=ldap_connect("servername");
if($ldapcon) {
$bind=ldap_bind($ldapcon,"Admin@domain.com", "somePassword");
if($bind) {
// create data...
$info=array();
$info["cn"][0] = "Hans Mustermann";
$info["sn"][0] = "Mustermann";
$info["givenName"][0] = "Hans";
$info["mail"][0] = "MustermannH@firma.de";
$info["objectclass"][0] = "top";
$info["objectclass"][1] = "person";
$info["objectclass"][2] = "organizationalPerson";
$info["objectclass"][3] = "contact";
$info["ou"][0] = "Users";
$info["ou"][1] = "contact";
// add Data...
$r=ldap_add($ldapcon, "cn=Hans Mustermann, sn=Mustermann", $info)
or die(ldap_error($ldapcon)); //error: operations error
}
}
是否缺少某些信息?代码错了吗?我需要对广告设置进行一些更改吗?这是“远程权利设置”或其他什么问题? 我是非常愚蠢而盲目地看到这个问题,还是一个不容易修复的大事? 你们有人有想法吗?
非常感谢 Chillikarli
答案 0 :(得分:-2)
您可以尝试使用
而不是或死()条件// add Data...
if(!(ldap_add($ldapcon, "cn=Hans Mustermann, sn=Mustermann", $info))) {
echo "There is a problem to create the account\n";
echo "Please contact your administrator !\n";
echo "LDAP Error: ".ldap_error($ldapcon)."\n";
exit;
}
ldap_unbind($ldapcon);