3

我在尝试使用 URL('ldap://hostname/') 从带有 PHP5 的 Ubuntu 服务器连接到 LDAP 服务器时遇到问题。当我不使用 URL 格式 ( $server = 'hostname') 时,代码可以正常工作。

编码:

$server = 'ldap://hostname/';

$ldapconn = ldap_connect($server, 3268) or die("Could not connect to LDAP server.");

if ($ldapconn) {
    $ldapbind = @ldap_bind($ldapconn, 'username', 'password');
    $error_ldap_code =  ldap_errno($ldapconn) ;
    if($error_ldap_code==0) {
        echo 'Connected!!!';
    }
}

编辑:

我需要ldaps,但我看到ldap我有同样的问题。虽然通过在 URL 中添加端口解决了与 ldap 相关的问题,但我仍然遇到 ldaps 问题。无论如何,我设法 ldap_start_tls ( resource $link )在仅使用主机名(无 URL 格式)连接后绕过它。

4

2 回答 2

2

尝试在 URL 中指定端口 - 它不是标准端口 389。所以 'ldap://hostname:3268'?

于 2013-05-20T09:55:05.920 回答
0

除非您将 LDAP 与 SSL 一起使用,否则您不需要在函数ldap://的第一个参数中指定ldap_connect()

因此,ldap_connect('hostname')是正确的。

注意:对于带有 SSL 的 LDAP,您可以使用ldap_connect('ldaps://hostname').

参考: http: //php.net/manual/en/function.ldap-connect.php

于 2013-05-20T09:58:23.130 回答