array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.ldap-compare.php', 1 => 'ldap_compare', ), 'up' => array ( 0 => 'ref.ldap.php', 1 => 'LDAP 関数', ), 'prev' => array ( 0 => 'function.ldap-close.php', 1 => 'ldap_close', ), 'next' => array ( 0 => 'function.ldap-connect-wallet.php', 1 => 'ldap_connect_wallet', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/ldap/functions/ldap-compare.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
ldap_compare — 指定した DN のエントリで見付かった属性の値を比較する
$ldap
,$dn
,$attribute
,$value
,$controls
= null
属性 attribute
の値 value
を、指定した LDAP ディレクトリエントリの同じ属性の値と比較します。
ldap
ldap_connect() が返す LDAP\Connection クラスのインスタンス。
dn
LDAP エンティティの識別名。
attribute
属性の名前。
value
比較する値。
controls
リクエストと一緒に送信する LDAP コントロール の配列
バージョン | 説明 |
---|---|
8.1.0 |
引数 ldap は、LDAP\Connection
クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、有効な ldap link リソース を期待していました。
|
8.0.0 |
controls は、nullable になりました。
これより前のバージョンでは、デフォルト値が [] でした。
|
7.3.0 |
controls のサポートが追加されました。
|
次の例は、指定したパスワードが 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 値を比較することはできません!