Php/docs/function.ldap-compare

提供:Dev Guides
< Php
移動先:案内検索

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 値を比較することはできません!