使用URL的PHP​​ LDAP连接

尝试使用URL从Ubuntu服务器连接到LDAP服务器时遇到问题('ldap: //hostname/').nn当我不使用URL格式( $ server ='hostname'</ code>)时,代码工作正常。</ p>

代码 :</ p>

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

$ ldapconn = ldap_connect($ server,3268)或die(“无法连接到LDAP 服务器。“);

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

编辑:</ p>

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

展开原文

原文

I have a problem while trying to connect from an Ubuntu server with PHP5 to a LDAP server using URL('ldap://hostname/'). The code works fine when I'm not using the URL format ($server = 'hostname').

The code:

$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!!!';
    }
}

Edit:

I needed ldaps, but I saw that with ldap I have the same problem. While the problem related to ldap was solved by adding the port in the URL, I still had the ldaps issue. Anyway, I managed to bypass it by using ldap_start_tls ( resource $link ) after connecting using only the hostname (without URL format).

dsymx68408
dsymx68408 我的意思是它只使用主机名时没有URL格式。
大约 7 年之前 回复
dongsheng8664
dongsheng8664 你是什​​么意思当我不使用URL时代码工作正常?
大约 7 年之前 回复

2个回答



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

展开原文

原文

Try specifying the port in the URL - it's not the standard port 389. So 'ldap://hostname:3268'?

douren5490
douren5490 您还可以使用url-string中的“ldaps://”通过LDAPS进行连接
大约 7 年之前 回复
duandu2980
duandu2980 我实际上在你的评论前几​​分钟用相同的解决方案更新了我的帖子,但不管怎样,谢谢。
大约 7 年之前 回复
douri4459
douri4459 嗯,LDAPS将在另一个端口上,因此要么在URL中指定该端口,要么最好在服务器配置为TLS时 - 通过普通LDAP URL /端口连接,然后发送启动TLS LDAP操作以开始加密。 PHP文档:php.net/manual/en/function.ldap-start-tls.php
大约 7 年之前 回复
douchu2823
douchu2823 它并没有完全解决我的问题,因为我试图使用ldaps(它仍然无法正常工作),但它正确回答(并且它有效)我提出的问题。
大约 7 年之前 回复



除非您使用LDAP和SSL,否则不需要在第一个参数中指定 ldap:// </ code> ldap_connect()</ code> function。</ p>

因此, ldap_connect('hostname')</ code>是正确的。</ p>

注意:对于使用SSL的LDAP,您可以使用 ldap_connect('ldaps:// hostname')</ code>。</ p>

参考: http://php.net/manual/en/function.ldap-connect.php </ p>
</ div>

展开原文

原文

Unless you are using LDAP with SSL , you are not required to specify ldap:// in 1st parameter of ldap_connect() function.

Therefore, ldap_connect('hostname') is correct.

Note: For LDAP with SSL , you can use ldap_connect('ldaps://hostname') .

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

dooso0594
dooso0594 实际上我正在尝试使用ldaps,因此我的问题,但我注意到它也不适用于ldap。
大约 7 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问