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.

Exemplo #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

Aviso

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