ldap_compare
指定した DN のエントリで見付かった属性の値を比較する
説明
boolint ldap_compare(
LDAP\Connection $ldap
,
string $dn
,
string $attribute
,
string $value
,
arraynull $controls
= null
)
パラメータ
-
ldap
-
ldap_connect が返す LDAP\Connection クラスのインスタンス。
-
dn
-
LDAP エンティティの識別名。
-
attribute
-
属性の名前。
-
value
-
比較する値。
-
controls
-
リクエストと一緒に送信する LDAP コントロール の配列
戻り値
value
がマッチする場合に true
、その他の場合に
false
、エラーの場合に -1 を返します。
例
次の例は、指定したパスワードが 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 値を比較することはできません!