ldap_compare

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

ldap_compareComparar una entrada con valores de atributos

Descripción

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

Permite comparar el valor value del atributo attribute con el valor del mismo atributo de la entrada dn.

Parámetros

ldap

An LDAP\Connection instance, returned by 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.

Historial de cambios

Versión Descripción
8.1.0 The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link recurso was expected.
8.0.0 controls is nullable now; previously, it defaulted to [].
7.3.0 Se añadió soporte para controls.

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.