(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
ldap_compare — Сравнивает значение атрибута, который найден в записи с DN-именем
$ldap,$dn,$attribute,$value,$controls = null
Функция сравнивает значение 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) {
// Привязка к LDAP-каталогу
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() нельзя вызывать для сравнения ДВОИЧНЫХ значений!