如何在PHP中正确使用ldap_search()?

时间:2011-10-21 19:35:55

标签: php ldap

到目前为止,我花了大部分时间来研究这个问题。出于某种原因,我不能为我的生活找出下面的代码出了什么问题。它是PHP手册中给出的示例的修剪/修改版本。

当我运行以下代码时,收到错误消息:

Warning: ldap_search() [function.ldap-search]: Search: Operations error in C:\wamp\www\ldap.php on line 12

相关代码:

<?php
$ds=ldap_connect("serverName.first.second.third.fourth");

ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

    $r=ldap_bind($ds);    
    $sr=ldap_search($ds, "OU=InfoSystems,OU=Domain Users,DC=first,DC=second,DC=third,ED=fourth", "sn=MyActualSurName");  
    ldap_close($ds);
?>

我使用VBS脚本打印当前登录用户的(Me)完整DN。从那时起,我插入了相应的OU和DC字段。

非常感谢任何帮助。如果需要进一步澄清,请不要犹豫。

1 个答案:

答案 0 :(得分:6)

终于找到了问题。我们的AD服务器允许匿名绑定,但显然不允许在没有凭据的情况下进行搜索。一旦我用凭证调用ldap_bind(),上面的代码就可以了。