ldap_compare

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

ldap_compare指定した DN のエントリで見付かった属性の値を比較する

説明

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

属性 attribute の値 value を、指定した LDAP ディレクトリエントリの同じ属性の値と比較します。

パラメータ

ldap

ldap_connect() が返す LDAP\Connection クラスのインスタンス。

dn

LDAP エンティティの識別名。

attribute

属性の名前。

value

比較する値。

controls

リクエストと一緒に送信する LDAP コントロール の配列

戻り値

value がマッチする場合に true、その他の場合に false、エラーの場合に -1 を返します。

変更履歴

バージョン説明
8.1.0 引数 ldap は、LDAP\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、有効な ldap linkリソース を期待していました。
8.0.0controls は、nullable になりました。 これより前のバージョンでは、デフォルト値が [] でした。
7.3.0controls のサポートが追加されました。

次の例は、指定したパスワードが DN の指定したエントリで定義された ものと一致するかどうかをチェックする方法を示しています。

例1 パスワード確認の例

<?php

$ds
=ldap_connect("localhost"); // LDAP サーバーが同一ホストであると仮定

if ($ds) {

// バインド
if (ldap_bind($ds)) {

// データを準備
$dn = "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
$value = "secretpassword";
$attr = "password";

// 値を比較
$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
"Wrong guess! Password incorrect.";
}

} else {
echo
"Unable to bind to LDAP server.";
}

ldap_close($ds);

} else {
echo
"Unable to connect to LDAP server.";
}
?>

注意

警告

ldap_compare() では BINARY 値を比較することはできません!

To Top