Compare value of attribute found in entry specified with DN

ldap_compare

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

ldap_compareCompare value of attribute found in entry specified with DN

說明

ldap_compare(
    LDAP\Connection $ldap,
    string $dn,
    string $attribute,
    string $value,
    ?array $controls = null
): bool|int

Compare value of attribute with value of same attribute in an LDAP directory entry.

參數

ldap

通過 ldap_connect() 返回的 LDAP\Connection 實例。

dn

The distinguished name of an LDAP entity.

attribute

The attribute name.

value

The compared value.

controls

Array of LDAP Controls to send with the request.

返回值

Returns true if value matches otherwise returns false. Returns -1 on error.

更新日誌

版本 說明
8.1.0 現在 ldap 參數接受 LDAP\Connection 實例,之前接受 資源(resource)
8.0.0 controls is nullable now; previously, it defaulted to [].
7.3.0 Support for controls added

範例

The following example demonstrates how to check whether or not given password matches the one defined in DN specified entry.

示例 #1 Complete example of password check

<?php

$ds
=ldap_connect("localhost");  // assuming the LDAP server is on this host

if ($ds) {

    
// bind
    
if (ldap_bind($ds)) {

        
// prepare data
        
$dn "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
        
$value "secretpassword";
        
$attr "password";

        
// compare value
        
$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() can NOT be used to compare BINARY values!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *