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!