ldap_compare

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

ldap_compareCompare une entrée avec des valeurs d'attributs

Description

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

Sert à comparer la valeur value de l'attribut attribute à la valeur du même attribut de l'entrée dn.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

dn

Le DN de l'entrée LDAP.

attribute

Le nom de l'attribut.

value

La valeur comparée.

controls

Tableau de Contrôles LDAP à envoyer avec la requête.

Valeurs de retour

Retourne true si la valeur value correspond, sinon, retourne false. Retourne -1 si une erreur survient.

Historique

Version Description
8.1.0 Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource était attendu.
8.0.0 controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3 Support pour controls a été ajouté.

Exemples

L'exemple suivant montre comment vérifier que deux mots de passe correspondent, dont l'un est celui d'une entrée du serveur LDAP.

Exemple #1 Exemple complet de vérification de mot de passe avec lDAP

<?php

$ds
=ldap_connect("localhost");  // doit être un serveur LDAP valide!

if ($ds) {

    
// Authentification
    
if (ldap_bind($ds)) {

        
// Préparation des données
        
$dn "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
        
$value "secretpassword";
        
$attr "password";

        
// Comparaison des valeurs
        
$r=ldap_compare($ds$dn$attr$value);

        if (
$r === -1) {
            echo 
"Error: " ldap_error($ds);
        } elseif (
$r === true) {
            echo 
"Password correct.";
        } elseif (
$r === false) {
            echo 
"Mal choisi ! Mot de passe incorrect !";
        }

    } else {
        echo 
"Impossible de se connecter au serveur LDAP.";
    }

    
ldap_close($ds);

} else {
    echo 
"Impossible de se connecter au serveur LDAP.";
}
?>

Notes

Avertissement

ldap_compare() ne peut PAS être utilisé pour comparer des valeurs binaires !