LDAP错误代码

时间:2016-06-20 20:36:38

标签: php login ldap

有谁知道如何获取整个LDAP错误代码?

我在PHP ldap_error($ldapConn)中使用代码,在ldap_errno($ldapConn)使用错误名称。但是error 49 - LDAP_INVALID_CREDENTIALS已经出现了“错误行为”。像49 / 525,49 / 530等。我需要整数错误,但ldap_error()仅显示49。

1 个答案:

答案 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;
}