PHP Manual
Prev |  | Next

# ldap_compare

(PHP 4 >= 4.0.2)

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

## Description

``int ldap_compare` (int link_identifier, string dn, string attribute, string value)`

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

ldap_compare() is used to compare `value` of `attribute` to value of same attribute in LDAP directory entry specified with `dn`.

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.";
    }
    ?>

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

> Note: This function was added in 4.0.2.

Prev | Home | Next
ldap_close | Up | ldap_connect