ldap_compare
(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
ldap_compare — Vergleicht den Wert eines Merkmals mit dem eines Eintrags
Beschreibung
LDAP\Connection
$ldap,string
$dn,string
$attribute,string
$value,?array
$controls = null): bool|int
Vergleicht den Wert (value des Merkmals
attribute mit dem Wert desselben Merkmals in einem
LDAP-Verzeichniseintrag.
Parameter-Liste
-
ldap -
Eine LDAP\ConnectionInstanz, die von ldap_connect() zurückgegeben wurde.
-
dn -
Der Distinguished Name eines LDAP-Datenobjekts.
-
attribute -
Der Name des Merkmals.
-
value -
Der zu vergleichende Wert.
-
controls -
Ein Array von LDAP-Steuerbefehlen, die mit der Anfrage versendet werden sollen.
Rückgabewerte
Gibt true zurück, wenn value übereinstimmt, falls
nicht, wird false zurückgegeben. Im Fehlerfall wird -1 zurückgegeben.
Changelog
| Version | Beschreibung |
|---|---|
| 8.1.0 |
Der Parameter ldap erwartet nun eine LDAP\Connection-Instanz; vorher wurde eine Ressource
erwartet.
|
| 8.0.0 |
controls ist jetzt nullable (akzeptiert den null-Wert); vorher war der Standardwert [].
|
| 7.3.0 |
Die Unterstützung für controls wurde
hinzugefügt.
|
Beispiele
Das folgende Beispiel zeigt, wie überprüft wird, ob ein gegebenes Kennwort mit dem Kennwort übereinstimmt, das in dem durch DN bestimmten Eintrag gespeichert ist.
Beispiel #1 Komplettes Beispiel einer Kennwort-Überprüfung
<?php
$ds=ldap_connect("localhost"); // Annahme: der LDAP-Server befindet
// sich auf diesem Host
if ($ds) {
// Anmelden
if(ldap_bind($ds)) {
// Daten vobereiten
$dn = "cn=Matti Meikku, ou=Meine Einheit, o=Meine Firma, c=FI";
$value = "Geheimes Kennwort";
$attr = "kennwort";
// Werte vergleichen
$r=ldap_compare($ds, $dn, $attr, $value);
if ($r === -1) {
echo "Fehler: ".ldap_error($ds);
} elseif ($r === TRUE) {
echo "Kennwort korrekt.";
} elseif ($r === FALSE) {
echo "Falsch geraten! Kennwort nicht korrekt.";
}
} else {
echo "Keine Bindung zum LDAP-Server möglich.";
}
ldap_close($ds);
} else {
echo "Keine Verbindung zum LDAP-Server möglich.";
}
?>
Anmerkungen
ldap_compare() kann NICHT für Vergleiche von BINÄREN Werten verwendet werden!

