PHPCon Poland 2024

ldap_get_option

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

ldap_get_optionLit/écrit la valeur courante d'une option

Description

ldap_get_option(LDAP\Connection $ldap, int $option, array|string|int &$value = null): bool

Définit la valeur value à l'option spécifié.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version Description
8.1.0 Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.

Exemples

Exemple #1 Vérification de la version du protocole

<?php
// $ds doit être une instance de connexion LDAP\Connection valide
if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version)) {
echo
"Nous utilisons le protocole version $version\n";
} else {
echo
"Impossible de déterminer la version du protocole.\n";
}
?>

Notes

Note:

Cette fonction n'est disponible qu'avec OpenLDAP 2.x.x OU Netscape Directory SDK x.x, et a été ajoutée en PHP 4.0.4.

Voir aussi

add a note

User Contributed Notes 3 notes

up
9
Anonymous
8 years ago
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
up
6
Jeremy S
10 years ago
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.';
}
up
0
Maarten
4 years ago
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);
To Top