【问题标题】:ldap_search() Bad search filter : memberofldap_search() 错误的搜索过滤器:memberof
【发布时间】:2017-06-16 07:32:09
【问题描述】:

我试图通过 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() 不工作。

提前致谢。

【问题讨论】:

    标签: php active-directory ldap


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 当我搜索“memberof”的使用方式时,它需要一个 =。所以如果没有 =,我不知道该怎么做。
    • 我了解到您需要使用= 运算符。但是,你已经用过两次了。
    • 你的建议是什么?
    • 好。至少,该错误已解决。现在,检查this answer 以了解当前问题。
    • 感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    相关资源
    最近更新 更多