ldap_compare

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

ldap_compareCompara valor de atributo encontrado em entrada especificada com DN

Descrição

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

Compara o valor informado em value do atributo informado em attribute com o valor do mesmo atributo na entrada do diretório LDAP.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

dn

O nome distinto de uma entidade LDAP.

attribute

O nome do atributo.

value

O valor para comparação.

controls

Array de Controles LDAP a ser enviado com a requisição.

Valor Retornado

Retorna true se value tem correspondência, caso contrário retorna false. Retorna -1 em caso de erro.

Registro de Alterações

Versão Descrição
8.1.0 O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.0.0 O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 Suporte para controls foi adicionado

Exemplos

O exemplo a seguir demonstra como verificar se a senha informada corresponde ou não à senha definida na entrada especificada pelo DN.

Example #1 Exemplo completo de verificação de senha

<?php

$ds=ldap_connect("localhost");  // assumindo que o servidor LDAP está no servidor local

if ($ds) {

    // ligação
    if (ldap_bind($ds)) {

        // prepara dados
        $dn = "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
        $value = "secretpassword";
        $attr = "password";

        // compara o valor
        $r=ldap_compare($ds, $dn, $attr, $value);

        if ($r === -1) {
            echo "Erro: " . ldap_error($ds);
        } elseif ($r === true) {
            echo "Senha correta.";
        } elseif ($r === false) {
            echo "Tentativa inválida! Senha incorreta.";
        }

    } else {
        echo "Não foi possível fazer ligação com o servidor LDAP.";
    }

    ldap_close($ds);

} else {
    echo "Não foi possível conexão ao servidor LDAP.";
}
?>

Notas

Warning

ldap_compare() NÃO pode ser usada para comparar valores BINÁRIOS!