【发布时间】:2016-02-15 15:49:22
【问题描述】:
这是我的代码:
$objLDAP = ldap_connect($_POST['host']);
$dn = "OU=Users,DC=office,DC=example,DC=com";
if ($objLDAP)
{
ldap_set_option($objLDAP, LDAP_OPT_REFERRALS, 0);
ldap_get_option($objLDAP,LDAP_OPT_REFERRALS,$error);
print_r($error."<br/>");
ldap_set_option($objLDAP, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_get_option($objLDAP,LDAP_OPT_PROTOCOL_VERSION,$error);
print_r($error."<br/>");
$objBind = ldap_bind($objLDAP);
print_r($objBind."<br/>");
$sr = ldap_search($objLDAP, $dn, "sn=*","sn") or die("Error in search query: ".ldap_error($objLDAP));
print_r($sr."<br />");
print_r(ldap_error($objLDAP)."<br />");
$info = ldap_get_entries($objLDAP, $sr);
print_r($info["count"]);
print_r(ldap_error($objLDAP));
exit();
}
其中 $_POST['host'] 是一个有效的主机名,而 $dn 也是一个有效的树。但是,当我运行程序时,我得到了
0
3
1
成功
搜索查询错误:成功
如果我使用 ldap_errno,则会收到“搜索查询错误:0”。
谁能帮我找回更有意义的信息,说明为什么我无法联系到 $info?
谢谢。
编辑: 还在调试。如果我将行更改为:
$sr = ldap_search($objLDAP,$dn,"(dn=*)") or die("Error in search query: ".ldap_error($objLDAP);
然后我得到
搜索查询错误:操作错误
但是我在第四个参数中添加的那一刻:
$sr = ldap_search($objLDAP,$dn,"(dn=*)","") or die("Error in search query: ".ldap_error($objLDAP);
然后我得到:
搜索查询错误:成功
另一个编辑:
根据下面的评论,我已将or die() 取出并继续执行程序流程。但我仍然没有在 $info 中获得任何数据。
代码:
ldap_set_option($objLDAP, LDAP_OPT_REFERRALS, 0);
ldap_get_option($objLDAP,LDAP_OPT_REFERRALS,$error);
print_r($error.": LDAP_OPT_REFERRALS<br/>");
ldap_set_option($objLDAP, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_get_option($objLDAP,LDAP_OPT_PROTOCOL_VERSION,$error);
print_r($error.": LDAP_OPT_PROTOCOL_VERSION<br/>");
$objBind = ldap_bind($objLDAP);
print_r($objBind.": objBind<br/>");
print_r(ldap_error($objLDAP).": ldap_bind error<br/>");
$sr = ldap_search($objLDAP,"OU=Users,DC=office,DC=example,DC=com","(sn=*)","");
print_r($sr.": search result<br />");
print_r(ldap_error($objLDAP).": ldap_search error<br />");
$info = ldap_get_entries($objLDAP, $sr);
print_r($info["count"].": number of entries returned<br />");
print_r(ldap_error($objLDAP.": ldap_get_entries error<br />"));
exit();
结果:
0:LDAP_OPT_REFERRALS
3:LDAP_OPT_PROTOCOL_VERSION
1:对象绑定
成功:ldap_bind 错误
: 搜索结果
成功:ldap_search 错误
: 返回的条目数
【问题讨论】:
标签: php ldap ldap-query