array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.ldap-compare.php', 1 => 'ldap_compare', ), 'up' => array ( 0 => 'ref.ldap.php', 1 => 'Функции LDAP', ), 'prev' => array ( 0 => 'function.ldap-close.php', 1 => 'ldap_close', ), 'next' => array ( 0 => 'function.ldap-connect-wallet.php', 1 => 'ldap_connect_wallet', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/ldap/functions/ldap-compare.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(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() нельзя вызывать для сравнения ДВОИЧНЫХ значений!