ldap_compare

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

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

説明

ldap_compare ( resource $link_identifier , string $dn , string $attribute , string $value ) : mixed

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

パラメータ

link_identifier

ldap_connect() が返す LDAP リンク ID。

dn

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

attribute

属性の名前。

value

比較する値。

返り値

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