ldap_compare
(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
ldap_compare — Compara valor de atributo encontrado em entrada especificada com DN
Descrição
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
ldap_compare() NÃO pode ser usada para comparar valores BINÁRIOS!