(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
ldap_compare — Compare une entrée avec des valeurs d'attributs
$ldap
,$dn
,$attribute
,$value
,$controls
= null
Sert à comparer la valeur value
de l'attribut attribute
à la valeur du même attribut de l'entrée dn
.
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.
Retourne true
si la valeur value
correspond, sinon, retourne false
. Retourne -1 si une erreur survient.
Version | Description |
---|---|
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressourceldap link était attendue. |
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [] . |
7.3.0 | Support pour controls a été ajouté. |
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.";
}
?>
ldap_compare() ne peut PAS être utilisé pour comparer des valeurs binaires !