2016-06-20 15 views
-1

LDAPエラーコード全体を取得する方法を知っている人はいますか?LDAPエラーコード

コードではldap_error($ldapConn)、エラー名ではldap_errno($ldapConn)を使用しています。しかしerror 49 - LDAP_INVALID_CREDENTIALSには、49/525、49/530などのような 'suberrors'があります。私はエラーの総数が必要ですが、ldap_error()は例として49しか示していません。

答えて

0

あなたはこのような何かを行うことができます。$diagnosticMsgは、あなたが探しているの余分な情報が含まれている完全なメッセージである

ldap_get_option($ldapConn, LDAP_OPT_ERROR_STRING, $diagnosticMsg); 
echo $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; 
} 
+0

LDAP_OPT_DIAGNOSTIC_MESSAGEにはどのバージョンのPHPが必要ですか? 5.4.16を使用しているサーバー。 – Thomas

+0

両方の定数は最終的に同じ値ですので、技術的にはどちらを使用するかは関係ありません。しかし、そのPHPバージョンでLDAP_OPT_ERROR_STRINGを使用する必要があります。もう一つは5.6と7.0のそれ以降のバージョンだと思います。 – ChadSikorra

+0

OK、ありがとうございます:) – Thomas

関連する問題