php / ldap - 绑定失败,但errorno不执行

时间:2010-03-23 15:12:29

标签: php ldap

我正在尝试使用php Web应用程序连接到ldap。如果用户名/密码是正确的,一切正常,但如果用户名/密码不正确,我会收到以下错误:

PHP警告:ldap_bind()[function.ldap-bind]:无法绑定到服务器:凭据无效

由于某种原因,我无法查看errorno或之后的绑定变量的状态,以打印适当的用户友好错误消息。

任何想法?

2 个答案:

答案 0 :(得分:3)

问题很可能是ldap_errno采用了ldap 连接资源,而ldap_bind失败了,您无法使用它的结果来检索错误。

另外:您是否尝试通过@符号来抑制错误?

e.g:

$ldapconn = ldap_connect("localhost");
@$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

if( $ldapbind )
{
  // Everything went fine
} else {
  // Use the connection resource for ldap_errno
  $errno = ldap_errno( $ldapconn );

  // Check the error number, print an error message (...)
}

答案 1 :(得分:1)

在尝试绑定之前,您必须检查您的ldap连接是否正常:

$ldap_conn = ldap_connect($ldap_host,$ldap_port);
if ($ldap_conn) {
    ldap_bind($ldap_conn, $ldap_user_dn, $ldap_pass);
    ...
}