ldap_compare

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

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

Описание

ldap_compare ( resource $link_identifier , string $dn , string $attribute , string $value [, array $serverctrls = array() ] ) : mixed

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

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

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

dn

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

attribute

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

value

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

serverctrls

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

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

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

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

Версия Описание
7.3 Добавлена поддержка параметра serverctrls

Примеры

Следующий пример демонстрирует, как проверить, совпадает ли данный пароль с тем, который определен в указанной записи 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) значений!