ldap_compare

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

ldap_compareCompare value of attribute found in entry specified with DN

Опис

ldap_compare(
    LDAP\Connection $ldap,
    string $dn,
    string $attribute,
    string $value,
    ?array $controls = null
): bool|int

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

Параметри

ldap

Примірник LDAP\Connection, якого повертає ldap_connect().

dn

The distinguished name of an LDAP entity.

attribute

The attribute name.

value

The compared value.

controls

Array of LDAP Controls to send with the request.

Значення, що повертаються

Returns true if value matches otherwise returns false. Returns -1 on error.

Журнал змін

Версія Опис
8.1.0 Тепер параметр ldap має бути примірником LDAP\Connection; раніше очікувався дійсний resource ldap link.
8.0.0 Параметр controls тепер може бути null; раніше початково було [].
7.3.0 Support for controls added

Приклади

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

Приклад #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.";
}
?>

Примітки

Увага

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