ldap_compare
(PHP 4 >= 4.0.2, PHP 5, PHP 7)
ldap_compare — 指定した DN のエントリで見付かった属性の値を比較する
説明
ldap_compare
( resource $ldap
, string $dn
, string $attribute
, string $value
[, array|null $controls
= null
] ) : bool|int
属性 attribute
の値 value
を、指定した LDAP ディレクトリエントリの同じ属性の値と比較します。
パラメータ
ldap
- ldap_connect() が返す LDAP リンク ID。
dn
- LDAP エンティティの識別名。
attribute
- 属性の名前。
value
- 比較する値。
controls
- リクエストと一緒に送信する LDAP コントロール の配列
返り値
value
がマッチする場合に true
、その他の場合に
false
、エラーの場合に -1 を返します。
変更履歴
バージョン | 説明 |
---|---|
8.0.0 | controls は、nullable になりました。
|
7.3 | 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 値を比較することはできません!