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

如何在PHP中正确使用ldap_search()?,php,ldap,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.f

到目前为止,我已经花了一天的大部分时间研究这个问题。出于某种原因,我一辈子都搞不清楚下面的代码到底出了什么问题。这是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字段


任何帮助都将不胜感激。如果需要进一步澄清,请毫不犹豫地询问。

最终发现了问题。我们的AD服务器允许匿名绑定,但显然不允许在没有凭据的情况下进行搜索。只要我使用凭据调用ldap_bind(),上述代码就可以正常工作

你试过这个吗?我有。这是我第一次偶然发现的解决方案。我正在使用它和LDAP_OPT_PROTOCOL_版本来强制执行版本3,这是另一个大多数人都认为有用的解决方案。我试过使用其中一个,而不是另一个,输出没有变化。还有其他建议吗?在过去的几天里,我花了更多的时间来研究它,但什么都没有发现。