ldap_search()糟糕的搜索过滤器:

时间:2017-06-16 07:32:10

标签: php active-directory ldap

通过LDAP我试图获取组中所有用户的电子邮件地址。下面是我得到的代码,我无法让它工作。 我得到的错误是:搜索过滤器错误。

if ($ldapconn) {
    echo "jep";
    echo "<br />";

    $basedn = "DC=lab,DC=kuhlmann-its,DC=local";
    $classname = "TAI2";
    $filter = "(&(objectClass=user)(memberOf=OU=TAI2,OU=Accounts,OU=BBS_Students,OU=BBS,OU=EDUNET))";
    $attributes = array("givenName", "sn", "mail");
    $search = ldap_search($ldapconn, $filter, $attributes);
    $info = ldap_get_entries($ldapconn, $search);

}

这是我第一次使用LDAP和Active Directory,我不知道所有功能是如何工作的。我想知道为什么我的ldap_search()无效。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我注意到参数序列不正确。

$search = ldap_search($ldapconn, $filter, $attributes);

如果您查看官方文档,您会注意到上面的行应该是

$search = ldap_search($ldapconn, $basedn, $filter, $attributes);

请参阅官方php.net文档中的ldap_search