(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
ldap_compare — Vergleicht den Wert eines Merkmals mit dem eines Eintrags
$ldap
,$dn
,$attribute
,$value
,$controls
= null
Vergleicht den Wert (value
des Merkmals
attribute
mit dem Wert desselben Merkmals in einem
LDAP-Verzeichniseintrag.
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.
Gibt true
zurück, wenn value
übereinstimmt, falls
nicht, wird false
zurückgegeben. Im Fehlerfall wird -1 zurückgegeben.
Version | Beschreibung |
---|---|
8.1.0 |
Der Parameter ldap erwartet nun eine LDAP\Connection-Instanz;
vorher wurde eine gültige ldap link -Ressource erwartet.
|
8.0.0 |
controls ist nun nullable (akzeptiert den null -Wert); vorher war der Standardwert [] .
|
7.3.0 |
Die Unterstützung für controls wurde
hinzugefügt.
|
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.";
}
?>
ldap_compare() kann NICHT für Vergleiche von BINÄREN Werten verwendet werden!