(PHP 7 >= 7.2.0, PHP 8)
ldap_exop — Effectue une opération étendue
$ldap
,$request_oid
,$request_data
= null
,$controls
= null
,&$response_data
= ?,&$response_oid
= ?
Effectue une opération étendue sur le ldap
spécifié avec
request_oid
l'OID de l'opération et
request_data
les données.
ldap
Une instance LDAP\Connection, retourné par ldap_connect().
request_oid
L'OID de l'opération étendue. Vous pouvez utiliser LDAP_EXOP_START_TLS
, LDAP_EXOP_MODIFY_PASSWD
, LDAP_EXOP_REFRESH
, LDAP_EXOP_WHO_AM_I
, LDAP_EXOP_TURN
, ou une chaîne avec l'OID de l'opération que vous souhaitez envoyer.
request_data
L'opération étendue demande des données. Peut être NULL pour certaines opérations comme LDAP_EXOP_WHO_AM_I
, peut également nécessiter un encodage BER.
controls
Un tableau de contrôles LDAP à envoyer avec la demande.
response_data
Va être rempli avec les données de réponse de l'opération étendue si fournies. Si non fournies, vous pouvez utiliser ldap_parse_exop sur l'objet résultat plus tard pour obtenir ces données.
response_oid
Va être rempli avec l'OID de réponse si fourni, généralement égal à l'OID de la demande.
Lorsqu'utiliser avec response_data
, renvoie true
en cas de succès ou false
en cas d'erreur.
Lorsqu'utiliser sans response_data
, renvoie un identifiant de résultat ou false
en cas d'erreur.
Version | Description |
---|---|
8.1.0 |
Le paramètre ldap attend désormais une instance de
LDAP\Connection ; auparavant, une resource ldap link était attendue.
|
7.3.0 |
Le support pour controls à été ajouté
|
Exemple #1 Opération étendue WHOAMI
<?php
$ds = ldap_connect("localhost"); // assumant que le serveur LDAP est sur cet hôte
if ($ds) {
// lie avec le dn approprié pour donner l'accès de mise à jour
$bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");
if (!$bind) {
echo "Unable to bind to LDAP server";
exit;
}
// Appel de l'opération étendue WHOAMI
$r = ldap_exop($ds, LDAP_EXOP_WHO_AM_I);
// analyse l'objet résultat
ldap_parse_exop($ds, $r, $retdata);
// Output: string(31) "dn:cn=root, o=My Company, c=US"
var_dump($retdata);
// Même chose en utilisant le paramètre $response_data
$success = ldap_exop($ds, LDAP_EXOP_WHO_AM_I, NULL, NULL, $retdata, $retoid);
if ($success) {
var_dump($retdata);
}
ldap_close($ds);
} else {
echo "Unable to connect to LDAP server";
}
?>