【问题标题】:PHP ldap_search gives error "Bad search filter" (-7)PHP ldap_search 给出错误“错误的搜索过滤器”(-7)
【发布时间】:2019-10-09 21:04:42
【问题描述】:

我在使用 PHP 中的 ldap_search 时遇到问题。下面的查询给出 LDAP ERROR "-7" - Bad search filter。
代码sn-p:

...
$base_dn = "ou=Example GSM,dc=example,dc=com";
$search_filter = "(userPrincipalName=example\name.surname)";
$bind_attr = "userPrincipalName";
$result = @ldap_search($ldapconn, $base_dn, $search_filter, array("dn", $bind_attr));

你知道我做错了什么吗?

我正在使用 Microsoft AD 和 PHP 7.2.18。

【问题讨论】:

    标签: php ldap


    【解决方案1】:

    我想\ 需要转义才能使过滤器正常工作。

    你应该能够通过使用这种方式来定义你的search_filter得到你想要的:

    $search_filter = "(userPrincipalName=" . ldap_escape('example\name.surname', '', LDAP_ESCAPE_FILTER) . ")";
    

    有关更多信息,请查看https://www.php.net/ldap_escape 的文档

    还可以查看https://www.php.net/manual/en/function.ldap-escape.php#118127 的用户提供的注释,这似乎描述了您的确切问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多