Necesito escribir un script para obtener información de usuario en un servidor LDAP. Esto funciona bien si no filtro nada, pero si configuro el filtro para un usuario específico, el resultado siempre es 0. Sospecho de la cadena de filtro, pero no estoy seguro de eso.
Aquí está el código:
<?php // using ldap bind $ldaprdn = 'uid=riemann,dc=example,dc=com'; // ldap rdn or dn $ldappass = 'password'; // associated password // connect to ldap server $ldapconn = ldap_connect("ldap.forumsys.com") or die("Could not connect to LDAP server."); ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0); if ($ldapconn) { // binding to ldap server $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass); // verify binding if ($ldapbind) { echo "LDAP bind successful..."; } else { echo "LDAP bind failed..."; } } $attributes = array('mail'); $accountname = "*"; //fine if =*, 0 if set it = riemann $filter_person = "(&(sAMAccountName={$accountname}))"; echo $filter_person; $search = ldap_search($ldapconn,"DC=example,DC=com", $filter_person, $attributes); $data = ldap_get_entries($ldapconn, $search); print_r($data); ?>Me lo imaginé. Es mi culpa que configuré mal $filter_person .
Debería ser:
$filter_person = "uid={$accountname}";