ldap_compare

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

ldap_compareСравнить значение атрибута, найденного в записи определённой DN

Описание

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

Сравнивает значение (value) атрибута (attribute) со значением того же атрибута в записи LDAP-директории.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

dn

Отличительное имя LDAP-объекта.

attribute

Имя атрибута.

value

Сравниваемое значение.

controls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает true если value совпадают в противном случае false. Возвращает -1 в случае возникновения ошибки.

Список изменений

Версия Описание
8.1.0 Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.0.0 controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 Добавлена поддержка параметра controls

Примеры

Следующий пример демонстрирует, как проверить, совпадает ли данный пароль с тем, который определён в указанной записи DN.

Пример #1 Полный пример проверки пароля

<?php

$ds
=ldap_connect("localhost"); // Предположим, что LDAP сервер находится по этому адресу

if ($ds) {

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

// подготовка данных
$dn = "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
$value = "secretpassword";
$attr = "password";

// сравнение данных
$r=ldap_compare($ds, $dn, $attr, $value);

if (
$r === -1) {
echo
"Ошибка: " . ldap_error($ds);
} elseif (
$r === true) {
echo
"Пароль верный.";
} elseif (
$r === false) {
echo
"Неправильное предположение! Пароль не верен.";
}

} else {
echo
"Невозможно привязаться к серверу LDAP.";
}

ldap_close($ds);

} else {
echo
"Невозможно соединиться с сервером LDAP.";
}
?>

Примечания

Внимание

ldap_compare() не может быть использована для сравнения бинарных (BINARY) значений!