【问题标题】:PHP LDAPS supplied argument is not a valid ldap link resourcePHP LDAPS 提供的参数不是有效的 ldap 链接资源
【发布时间】:2015-12-06 12:47:12
【问题描述】:

我正在尝试从我的 Windows 机器上的本地 Ubuntu VM Box 连接到远程 LDAP 服务器。 PHP代码是:

$ldap = ldap_connect("ldaps://11.22.33.44",636);
ldap_set_option ($ldap, LDAP_OPT_REFERRALS, 0);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
$username = "domain\usr";
$password = "blah";
$ds = ldap_bind($ldap, $username, $password );
if( $ds ){
    echo "logged in!";
}
else{
    echo "failed to log in!";
    exit;
}

运行此程序时,我得到“登录!”消息,所以我假设连接正常。但是,当我之后运行此 PHP 代码时:

$sr = ldap_search($ds, "OU=User Accounts,DC=Domain1,DC=foobar,DC=Local", "(|(sn=*))");

我收到此错误:

警告:ldap_search():提供的参数不是第 37 行 /usr/share/nginx/www/ldap_test.php 中的有效 ldap 链接资源

(指的是包含 ldap_search 命令的行。如果连接成功并且创建了链接资源,这没有意义 - 有什么想法吗?

【问题讨论】:

  • 我会将ldap_connect 中的端口移动到 URI 中,因为当 LDAP-URI 作为第一个参数传递时,不使用第二个参数。所以打电话给ldap_connect("ldaps://11.22.33.44:636"); 会更好。

标签: php ldap


【解决方案1】:

ldap_bind 将返回 truefalse。您需要将ldap_connect 的结果传递给ldap_search - 在您的示例中为$ldap

$sr = ldap_search($ldap, "OU=User Accounts,DC=Domain1,DC=foobar,DC=Local", "(|(sn=*))");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    相关资源
    最近更新 更多