# ldap_compare

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ldap_compare — Compare value of attribute found in entry specified with DN

### 说明

ldap_compare ( resource `$link_identifier` , string `$dn` , string `$attribute` , string `$value` [, array `$serverctrls` = array() ] ) : mixed

Compare `value` of `attribute` with value of same attribute in an LDAP directory entry.

### 参数

`link_identifier`

  An LDAP link identifier, returned by ldap_connect().

`dn`

  The distinguished name of an LDAP entity.

`attribute`

  The attribute name.

`value`

  The compared value.

`serverctrls`

  Array of LDAP Controls to send with the request.

### 返回值

Returns `TRUE` if `value` matches otherwise returns `FALSE`. Returns -1 on error.

### 更新日志

版本 | 说明
--- | ---
7.3 | Support for `serverctrls` added

### 范例

The following example demonstrates how to check whether or not given password matches the one defined in DN specified entry.

Example #1 Complete example of password check

    <?php

    $ds=ldap_connect("localhost");  // assuming the LDAP server is on this host

    if ($ds) {

        // bind
        if (ldap_bind($ds)) {

            // prepare data
            $dn = "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
            $value = "secretpassword";
            $attr = "password";

            // compare value
            $r=ldap_compare($ds, $dn, $attr, $value);

            if ($r === -1) {
                echo "Error: " . ldap_error($ds);
            } elseif ($r === true) {
                echo "Password correct.";
            } elseif ($r === false) {
                echo "Wrong guess! Password incorrect.";
            }

        } else {
            echo "Unable to bind to LDAP server.";
        }

        ldap_close($ds);

    } else {
        echo "Unable to connect to LDAP server.";
    }
    ?>

### 注释

Warning

ldap_compare() can NOT be used to compare BINARY values!