ldap_compare
(PHP 4 >= 4.0.2, PHP 5, PHP 7)
ldap_compare — Сравнить значение атрибута, найденного в записи определённой DN
Описание
$ldap
, string $dn
, string $attribute
, string $value
, array|null $controls
= null
) : bool|int
Сравнивает значение (value
) атрибута (attribute
)
со значением того же атрибута в записи LDAP-директории.
Список параметров
-
ldap
-
Идентификатор ссылки LDAP, возвращенный ldap_connect().
-
dn
-
Отличительное имя LDAP-объекта.
-
attribute
-
Имя атрибута.
-
value
-
Сравниваемое значение.
-
controls
-
Массив управляющих констант LDAP для отправки в запросе.
Возвращаемые значения
Возвращает true
если value
совпадают в противном случае false
.
Возвращает -1 в случае ошибки.
Список изменений
Версия | Описание |
---|---|
8.0.0 |
controls теперь допускает значение null; ранее значение по умолчанию было [] .
|
7.3 |
Добавлена поддержка параметра 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) значений!