ldap_compare
(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
Compare value of attribute found in entry specified with DN
Description
Compare value of attribute with value of same attribute in an LDAP directory entry.
Parameters
ldapLdap
dnThe distinguished name of an LDAP entity.
attributeThe attribute name.
valueThe compared value.
controlsArray of LDAP Controls to send with the request.
Return Values
Returns true if value matches otherwise returns false. Returns -1 on error.
Both true and -1 are truthy, so a plain truth test such as if (ldap_compare(...)) treats an error as a match. The result must be compared strictly against true.
Changelog
| Version | Description |
|---|---|
| 7.3.0 | Support for controls added |
Examples
The following example demonstrates how to check whether or not given password matches the one defined in DN specified entry.
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.";
}
?>Notes
ldap_compare() can NOT be used to compare BINARY values!