(PHP 4 >= 4.0.2, PHP 5)
ldap_compare — Compara un valor indicado con el valor de un atributo especificado mediante su DN
Devuelve TRUE si value coincide con el valor del atributo atributo en el directorio. Si no coinciden, devuelve FALSE. Si se ha producido un error, devuelve -1.
ldap_compare() se emplea para comparar el parámetro valor con el valor que tiene el atributo attribute de la entrada de direcotrio especificada mediante el parámetro dn .
El siguiente ejemplo muestra como realizar la comprobación de si la contraseña proporcionada coincide con la almacenada en la entrada DN especificada.
Example#1 Ejemplo completo de comprobación de contraseña
<?php
$ds=ldap_connect("localhost"); // Asumimos que el servidor LDAP esta en el
// servidor local
if ($ds) {
// autenticacion
if (ldap_bind($ds)) {
// preparar los datos
$dn = "cn=Pedro Perez, ou=Mi Unidad, o=Mi Compania, c=ES";
$valor = "contrasena_secreta";
$atributo = "password";
// comparar los valores
$r=ldap_compare($ds, $dn, $atributo, $valor);
if ($r === -1) {
echo "Error: " . ldap_error($ds);
} elseif ($r === true) {
echo "Contrasena correcta.";
} elseif ($r === false) {
echo "La contrasena proporcionada es incorrecta.";
}
} else {
echo "No ha sido posible conectarse al servidor LDAP.";
}
ldap_close($ds);
} else {
echo "No ha sido posible conectarse al servidor LDAP.";
}
?>
ldap_compare() no permite la comparación de valores binarios.
Note: La función se incluyó en la versión 4.0.2.