我正在尝试使用php Web应用程序连接到ldap。如果用户名/密码是正确的,一切正常,但如果用户名/密码不正确,我会收到以下错误:
PHP警告:ldap_bind()[function.ldap-bind]:无法绑定到服务器:凭据无效
由于某种原因,我无法查看errorno或之后的绑定变量的状态,以打印适当的用户友好错误消息。
任何想法?
答案 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);
...
}