• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • ldap_errno()

    (PHP 4, PHP 5, PHP 7)

    Return the LDAP error number of the last LDAP command

    说明

    ldap_errno(resource $link_identifier): int

    Returns the standardized error number returned by the last LDAP command. This number can be converted into a textual error message using ldap_err2str().

    参数

    $link_identifier

    An LDAP link identifier, returned by ldap_connect().

    返回值

    Return the LDAP error number of the last LDAP command for this link.

    范例

    Unless you lower your warning level in yourphp.inisufficiently or prefix your LDAP commands with @(at)characters to suppress warning output, the errors generated will also show up in your HTML output.

    Example #1 Generating and catching an error

    <?php
    // This example contains an error, which we will catch.
    $ld = ldap_connect("localhost");
    $bind = ldap_bind($ld);
    // syntax error in filter expression (errno 87),
    // must be "objectclass=*" to work.
    $res =  @ldap_search($ld, "o=Myorg, c=DE", "objectclass");
    if (!$res) {
        echo "LDAP-Errno: " . ldap_errno($ld) . "<br />\n";
        echo "LDAP-Error: " . ldap_error($ld) . "<br />\n";
        die("Argh!<br />\n");
    }
    $info = ldap_get_entries($ld, $res);
    echo $info["count"] . " matching entries.<br />\n";
    ?>
    

    参见

    • ldap_err2str()Convert LDAP error number into string error message
    • ldap_error()Return the LDAP error message of the last LDAP command
    Common LDAP error codes
    LDAP_SUCCESS          0x00
    LDAP_OPERATIONS_ERROR      0x01
    LDAP_PROTOCOL_ERROR       0x02
    LDAP_TIMELIMIT_EXCEEDED     0x03
    LDAP_SIZELIMIT_EXCEEDED     0x04
    LDAP_COMPARE_FALSE       0x05
    LDAP_COMPARE_TRUE        0x06
    LDAP_AUTH_METHOD_NOT_SUPPORTED 0x07
    LDAP_STRONG_AUTH_REQUIRED    0x08
    // Not used in LDAPv3
    LDAP_PARTIAL_RESULTS      0x09
    // Next 5 new in LDAPv3
    LDAP_REFERRAL      0x0a
    LDAP_ADMINLIMIT_EXCEEDED    0x0b
    LDAP_UNAVAILABLE_CRITICAL_EXTENSION   0x0c
    LDAP_CONFIDENTIALITY_REQUIRED  0x0d
    LDAP_SASL_BIND_INPROGRESS    0x0e
    LDAP_NO_SUCH_ATTRIBUTE     0x10
    LDAP_UNDEFINED_TYPE       0x11
    LDAP_INAPPROPRIATE_MATCHING   0x12
    LDAP_CONSTRAINT_VIOLATION    0x13
    LDAP_TYPE_OR_VALUE_EXISTS    0x14
    LDAP_INVALID_SYNTAX       0x15
    LDAP_NO_SUCH_OBJECT       0x20  /* 32 */
    LDAP_ALIAS_PROBLEM       0x21
    LDAP_INVALID_DN_SYNTAX     0x22
    // Next two not used in LDAPv3
    LDAP_IS_LEAF          0x23
    LDAP_ALIAS_DEREF_PROBLEM    0x24
    LDAP_INAPPROPRIATE_AUTH     0x30  /* 48 */
    LDAP_INVALID_CREDENTIALS    0x31  /* 49 */
    LDAP_INSUFFICIENT_ACCESS    0x32
    LDAP_BUSY            0x33
    LDAP_UNAVAILABLE        0x34
    LDAP_UNWILLING_TO_PERFORM    0x35
    LDAP_LOOP_DETECT        0x36
    LDAP_SORT_CONTROL_MISSING    0x3C  /* 60 */
    LDAP_INDEX_RANGE_ERROR     0x3D  /* 61 */
    LDAP_NAMING_VIOLATION      0x40
    LDAP_OBJECT_CLASS_VIOLATION   0x41
    LDAP_NOT_ALLOWED_ON_NONLEAF   0x42
    LDAP_NOT_ALLOWED_ON_RDN     0x43
    LDAP_ALREADY_EXISTS       0x44  /* 68 */
    LDAP_NO_OBJECT_CLASS_MODS    0x45
    LDAP_RESULTS_TOO_LARGE     0x46
    // Next two for LDAPv3
    LDAP_AFFECTS_MULTIPLE_DSAS   0x47
    LDAP_OTHER           0x50
    // Used by some APIs
    LDAP_SERVER_DOWN        0x51
    LDAP_LOCAL_ERROR        0x52
    LDAP_ENCODING_ERROR       0x53
    LDAP_DECODING_ERROR       0x54
    LDAP_TIMEOUT          0x55
    LDAP_AUTH_UNKNOWN        0x56
    LDAP_FILTER_ERROR        0x57  /* 87 */
    LDAP_USER_CANCELLED       0x58
    LDAP_PARAM_ERROR        0x59
    LDAP_NO_MEMORY         0x5a
    // Preliminary LDAPv3 codes
    LDAP_CONNECT_ERROR       0x5b
    LDAP_NOT_SUPPORTED       0x5c
    LDAP_CONTROL_NOT_FOUND 0x5d
    LDAP_NO_RESULTS_RETURNED    0x5e
    LDAP_MORE_RESULTS_TO_RETURN   0x5f
    LDAP_CLIENT_LOOP    0x60
    LDAP_REFERRAL_LIMIT_EXCEEDED  0x61
    Couple of good error codes to get started. If you want to detect failure of ldap_add due to the record already existing, ldap_error == 0x44. This means, you can do something like:
    $r = ldap_add($ds, $dn, $info);
    if (!$r) {
      if (ldap_errno($ds) == 0x44) {
         // Do something about it
      } else {
         // A real failure
      }
    }
    Similarly, on ldap_delete, you will get a 0x20 value (No Such Object) if you try to delete something that isn't there.

    上篇:ldap_err2str()

    下篇:ldap_error()