Forum und email

ldap_compare

(PHP 4 >= 4.0.2, PHP 5)

ldap_compare — Compara un valor indicado con el valor de un atributo especificado mediante su DN

Descripción

mixed ldap_compare ( resource $identificador_de_conexion , string $dn , string $atributo , string $valor )

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.";
}
?>
Warning

ldap_compare() no permite la comparación de valores binarios.

Note: La función se incluyó en la versión 4.0.2.