php - PHP ldap_search 给出错误“错误的搜索过滤器”(-7)
问题描述
我在 PHP 中遇到了 ldap_search 的问题。下面的查询给出了 LDAP ERROR "-7" - Bad search filter。
代码片段:
...
$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 。
解决方案
我想\
需要转义过滤器才能工作。
您应该能够通过使用这种方式来定义您的 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上的用户提供的注释,这似乎描述了您的确切问题
推荐阅读
- laravel - 如果未经身份验证,如何将用户重定向到登录页面?
- amazon-web-services - 使用 AWS SSO 联合账户运行代入角色时出现问题
- python - 求解两个耦合的二阶边值问题
- angular - Github 自动提交到子模块
- json - 如何在不更改 Google Apps 脚本的情况下进行 Json 解析
- intellij-idea - IntelliJ 中的龙目岛问题
- mysql - 无法通过 tcp/ip 连接到 mysql。但可以通过套接字连接
- python - django 已安装但仍找不到 django-admin.py 命令
- php - 使用 jQuery 检测动态表的按钮单击包含动态按钮
- javascript - 从实例化对象调用异步方法会出错:TypeError: Object(...) is not a function