ldap_compare
(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
ldap_compare — Comparar una entrada con valores de atributos
Parámetros
ldap
-
Una instancia de LDAP\Connection, devuelta por ldap_connect().
dn
-
El DN de la entrada LDAP.
attribute
-
El nombre del atributo.
value
-
El valor a comparar.
controls
-
Array de Controles LDAP a enviar con la petición.
Valores devueltos
Devuelve true si el valor value coincide, de lo contrario,
devuelve false. Devuelve -1 si ocurre un error.
Advertencia
Tanto true como -1 son
truthy, por lo que una
simple prueba de verdad como if (ldap_compare(...)) trata un
error como una coincidencia. El resultado debe compararse estrictamente
contra true.
Ejemplos
El siguiente ejemplo muestra cómo verificar que dos contraseñas coinciden,
siendo una de ellas la de una entrada del servidor LDAP.
Ejemplo #1 Ejemplo completo de verificación de contraseña con LDAP
<?php
$ds=ldap_connect("localhost"); // debe ser un servidor LDAP válido!
if ($ds) {
// Autenticación
if (ldap_bind($ds)) {
// Preparación de datos
$dn = "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
$value = "secretpassword";
$attr = "password";
// Comparación de valores
$r=ldap_compare($ds, $dn, $attr, $value);
if ($r === -1) {
echo "Error: " . ldap_error($ds);
} elseif ($r === true) {
echo "Contraseña correcta.";
} elseif ($r === false) {
echo "¡Mal elegido! ¡Contraseña incorrecta!";
}
} else {
echo "No se pudo conectar al servidor LDAP.";
}
ldap_close($ds);
} else {
echo "No se pudo conectar al servidor LDAP.";
}
?>
Notas
Advertencia
ldap_compare() NO puede ser utilizado para comparar
valores binarios.