PHP.mk документација

ldap_compare

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.ldap-compare.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.ldap-compare.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
ldap_compare

Референца за `function.ldap-compare.php` со подобрена типографија и навигација.

function.ldap-compare.php

ldap_compare

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

ldap_compareCompare value of attribute found in entry specified with DN

= NULL

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

Спореди value of attribute with value of same attribute in an LDAP directory entry.

Параметри

ldap

Еден LDAP\Connection инстанца, вратена од ldap_connect().

dn

. Може исто така да додава или отстранува атрибути.

attribute

Името на атрибутот.

value

The compared value.

controls

Низа од LDAP контроли сега е nullable; претходно, стандардно беше

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true if value matches otherwise returns false. Returns -1 on error.

Дневник на промени

Верзија = NULL
8.1.0 На ldap параметарот очекува LDAP\Connection инстанца сега; претходно, валидна ldap link resource се очекуваше.
8.0.0 controls Пример #1 LDAP пребарување [].
7.3.0 Поддршка за controls added

Примери

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

Example #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.";
}
?>

Белешки

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

ldap_compare() can NOT be used to compare BINARY values!

Белешки од корисници 4 белешки

chuck+ldap at 2006 dot snew dot com
21 години пред
Just a side note that this is not how you'd ever AUTHENTICATE someone, just an example code.

The common way to authenticate is to get the users name, use search and perhaps selection to the user to get her DN (single value) then attempt to BIND to the ldapserver using that dn and the offered password.  If it works, then it's the right password.

Note that the password offered MUST NOT BE EMPTY or many LDAPs will presume you meant to authenticate anonymously and it will succeed, leaving you thinking it's the right password.
oudejans at zeelandnet dot nl
20 години пред
With PHP 4.3.* is Password no longer a valid attribute.. try to use userPassword
Brian Kerhin &lt;kerhin at bigfoot dot com&gt;
yasuo_ohgaki at hotmail dot com
Not probably, will.  With PHP 4.0.4 and openldap 1.2.9 this little script, even with the correct attributes for the password does not do the job.  Would superb if it did!
334647 at swin dot edu dot au
yasuo_ohgaki at hotmail dot com
Interesting example. Apart from the fact that very few people would allow comaprisions of the password attribute for security reasons. The attribute name of "password" does not match the usual schemas.

The usual method of user id + password verification is to attempt to bind using the supplied credentials.

Ldap compare on password values will probably fail with ns directroy server and openldap v2+ becuase of server support for password hashing.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.