&reftitle.examples;
Utilisation simple Lit les informations sur toutes les entrées dont le nom commence par "S" sur le serveur de dossier, puis affiche le nom et l'adresse email. Recherche avec LDAP requête de test de LDAP'; echo 'Connexion ...'; $ds=ldap_connect("localhost"); // doit être un serveur LDAP valide ! echo 'Le résultat de connexion est ' . $ds . '
'; if ($ds) { echo 'Liaison ...'; $r=ldap_bind($ds); // connexion anonyme, typique // pour un accès en lecture seule. echo 'Le résultat de connexion est ' . $r . '
'; echo 'Recherchons (sn=S*) ...'; // Recherche par nom de famille $sr=ldap_search($ds, "o=My Company, c=US", "sn=S*"); echo 'Le résultat de la recherche est ' . $sr . '
'; echo 'Le nombre d\'entrées retournées est ' . ldap_count_entries($ds,$sr) . '
'; echo 'Lecture des entrées ...
'; $info = ldap_get_entries($ds, $sr); echo 'Données pour ' . $info["count"] . ' entrées:
'; for ($i=0; $i<$info["count"]; $i++) { echo 'dn est : ' . $info[$i]["dn"] . '
'; echo 'premiere entree cn : ' . $info[$i]["cn"][0] . '
'; echo 'premier email : ' . $info[$i]["mail"][0] . '
'; } echo 'Fermeture de la connexion'; ldap_close($ds); } else { echo '

Impossible de se connecter au serveur LDAP.

'; } ?> ]]>
LDAP Controls Voici quelques exemples d'utilisation des contrôles LDAP avec PHP >= 7.3.0. Lier avec des information ppolicy LDAP_CONTROL_PASSWORDPOLICYREQUEST]]); if (ldap_parse_result($ds, $r, $errcode, $matcheddn, $errmsg, $referrals, $ctrls)) { if ($errcode != 0) { die("Error: $errmsg ($errcode)"); } if (isset($ctrls[LDAP_CONTROL_PASSWORDPOLICYRESPONSE])) { $value = $ctrls[LDAP_CONTROL_PASSWORDPOLICYRESPONSE]['value']; echo "Expire dans : ".$value['expire']." secondes\n"; echo "Nombres d'authentification restante : ".$value['grace']."\n"; if (isset($value['error'])) { echo "Code d'erreur Ppolicy : ".$value['error']; } } } } else { die("Impossible de se connecter au serveur LDAP"); } ?> ]]> Modifier la description uniquement si elle n'est pas vide 'Nouvelle description'], [ [ 'oid' => LDAP_CONTROL_ASSERT, 'iscritical' => TRUE, 'value' => ['filter' => '(!(description=*))'] ] ] ); // Puis utiliser ldap_parse_result ?> ]]> Lire des valeurs avant leurs suppresion LDAP_CONTROL_PRE_READ, 'iscritical' => TRUE, 'value' => ['attrs' => ['o', 'description']] ] ] ); // Puis utiliser ldap_parse_result ?> ]]> Supprimer une référence LDAP_CONTROL_MANAGEDSAIT, 'iscritical' => TRUE]] ); // Puis utiliser ldap_parse_result ?> ]]> Utiliser la pagination pour une recherche LDAP_CONTROL_PAGEDRESULTS, 'value' => ['size' => 2, 'cookie' => $cookie]]] ); ldap_parse_result($link, $result, $errcode , $matcheddn , $errmsg , $referrals, $controls); // Pour garder l'exemple simple les erreurs ne sont pas testées $entries = ldap_get_entries($link, $result); foreach ($entries as $entry) { echo "cn: ".$entry['cn'][0]."\n"; } if (isset($controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'])) { // Vous devez passer le cookie du dernier appel au prochain $cookie = $controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie']; } else { $cookie = ''; } // Cookie vide signifie dernière page } while (!empty($cookie)); ?> ]]>