(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
ldap_compare — Compara valor de atributo encontrado em entrada especificada com DN
$ldap,$dn,$attribute,$value,$controls = null
Compara o valor informado em value do atributo informado em attribute
com o valor do mesmo atributo na entrada do diretório LDAP.
ldapUma instância de LDAP\Connection, retornada por ldap_connect().
dnO nome distinto de uma entidade LDAP.
attributeO nome do atributo.
valueO valor para comparação.
controlsArray de Controles LDAP a ser enviado com a requisição.
Retorna true se value tem correspondência, caso contrário retorna
false. Retorna -1 em caso de erro.
| 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
|
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.";
}
?>ldap_compare() NÃO pode ser usada para comparar valores BINÁRIOS!