@x8seven

Как правильно сделать выборку из LDAP через PHP?

Обо мне:
Сразу признаюсь, я только начинаю познавать PHP так что сильно не пинайте, если возможно укажите на мои ошибки.
Суть:
В ад есть подразделение с контактами всех сотрудников компании, передо мной была поставлена задача сделать из этого список контактов в виде веб странички. Почитав и поняв что это можно сделать через php который я хоть немного да знаю. Погуглил пару дней и сделал вот что:
<?php
//Параметры подключения
$LDAP = array(
'server' => '192.168.1.5',
'port' => '389',
'user' => 'ldapphp@mydomen.local',
'pass' => 'YjQ9785DTWqZm76gJ7hCa8V7$f8t5r44w89Vtfh$',
'dn' => 'OU=contacts,DC=mydomen,DC=local'
);
// Подключаемся к серверу
$adconn = ldap_connect($LDAP['server'], $LDAP['port'])
    or die('Не могу подключиться к LDAP-серверу');

// Устанавливаем версию протокола 
ldap_set_option($adconn, LDAP_OPT_PROTOCOL_VERSION, 3);

// Привязка
ldap_bind($adconn, $LDAP['user'], $LDAP['pass'])
or die('Не могу подсоединиться к LDAP-серверу');

// выборка
$filter = "(sn=*)";
$att = array( "ou", "sn", "givenname", "mail");

$result=ldap_search($adconn, $LDAP['dn'], $filter, $att);

$info = ldap_get_entries($adconn, $result);

print $info["count"]." entries returned<p>";
?>


Проблема:
Почему ничего не возвращает понять не могу, буду рад любой помощи в просвещении этого вопроса.
  • Вопрос задан
  • 4054 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
У меня этот код работает (естественно параметры заменены на мой домен).
Попробуйте так:
$result=ldap_search($adconn, $LDAP['dn'], $filter, $att);
if ($result) {
    $info = ldap_get_entries($adconn, $result);
    print $info["count"]." entries returned";
} else
    print "LDAP search error ".ldap_errno($adconn)." (".ldap_error($adconn).")";
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@x8seven Автор вопроса
У меня тоже заработало после добавления в конце
ldap_close($adconn);
Видимо слишком частое обращение к ldap дает сбои в случае если не обрывать соединение

Теперь вопрос встал в другом, как из многомерного массива $info получить именно те данные которые мне нужны массив очень очень много мерен как я понимаю из вот этого
print_r($info);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы