Following on from Jeremy S's example. Instead of defining LDAP_OPT_DIAGNOSTIC_MESSAGE as 0x32 then using it, you can just use the option already defined as that value :)LDAP_OPT_ERROR_STRING
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
ldap_get_option — Получить текущее значение данной опции
Устанавливает value
в значение указанной опции.
ldap
Экземпляр класса LDAP\Connection, который возвращает функция ldap_connect().
option
Опция option
может быть одной из:
value
Будет установлен в значение опции.
Функция возвращает true
, если выполнилась успешно, или false
, если возникла ошибка.
Версия | Описание |
---|---|
8.1.0 |
Параметр ldap теперь ожидает экземпляр класса LDAP\Connection;
раньше параметр ждал ресурс (resource) ldap link .
|
Пример #1 Проверка версии протокола
<?php
// $ds допустимый экземпляр LDAP\Connection
if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version)) {
echo "Используется версия протокола $version\n";
} else {
echo "Невозможно определить версию протокола\n";
}
?>
Замечание:
Эта функция доступна только когда используется OpenLDAP 2.x.x или Netscape Directory SDK x.x.
Following on from Jeremy S's example. Instead of defining LDAP_OPT_DIAGNOSTIC_MESSAGE as 0x32 then using it, you can just use the option already defined as that value :)LDAP_OPT_ERROR_STRING
Here is how to tell if an Active Directory user account expired:define('LDAP_OPT_DIAGNOSTIC_MESSAGE', 0x0032);ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3);ldap_set_option($conn, LDAP_OPT_REFERRALS, 0);$bind = ldap_bind($conn, $user, $pass);ldap_get_option($conn, LDAP_OPT_DIAGNOSTIC_MESSAGE, $extended_error);if (!empty($extended_error)){ $errno = explode(',', $extended_error)[2]; $errno = explode(' ', $errno)[2]; $errno = intval($errno); if ($errno == 532) $err = 'Unable to login: Password expired.';}
PHP 7.1 added support for configuring the LDAP CA/Cert environment directly, rather than relying on the environment variables. I noticed that a lot of people are having trouble getting this to work.The correct way is:$ds=ldap_connect("ldap.google.com"); ldap_set_option(NULL, LDAP_OPT_X_TLS_CERTFILE, "/path/file.crt");ldap_set_option(NULL, LDAP_OPT_X_TLS_KEYFILE, "/path/file.key");ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);ldap_start_tls($ds);...ldap_close($ds);