有谁知道如何获取整个LDAP错误代码?
我在PHP ldap_error($ldapConn)
中使用代码,在ldap_errno($ldapConn)
使用错误名称。但是error 49 - LDAP_INVALID_CREDENTIALS
已经出现了“错误行为”。像49 / 525,49 / 530等。我需要整数错误,但ldap_error()
仅显示49。
答案 0 :(得分:1)
您可以这样做:
ldap_get_option($ldapConn, LDAP_OPT_ERROR_STRING, $diagnosticMsg);
echo $diagnosticMsg;
其中$diagnosticMsg
是包含您正在寻找的额外信息的完整消息。
在较新版本的PHP中,您可以使用LDAP_OPT_DIAGNOSTIC_MESSAGE
代替。这将包含您正在寻找的扩展错误代码。您可以通过以下方式解析它:
function getExtendedErrorNumber($diagnosticMsg) {
$errorNumber = 0;
if (!empty($diagnosticMsg)) {
$errorNumber = explode(',', $diagnosticMsg);
if (!isset($errorNumber[2])) {
return 0;
};
$errorNumber = explode(' ', $errorNumber[2]);
if (!isset($errorNumber[2])) {
return 0;
};
$errorNumber = hexdec(intval($errorNumber[2]));
}
return $errorNumber;
}