Servers

Адресная книга из Active Directory через PHP

Хочу поделиться небольшим скриптом на PHP для доступа к контактной информации учётных записей пользователей (и контактов) из Active Directory через простой WEB-интерфейс. В простонародье — «ATS» или «АТС» ?
Скрипт писался эволюционно разными людьми на протяжении долгого периода времени, изначально об AD и речи не было, просто отдельная БД с номерами телефонов, поэтому он довольно кривоват и местами убог, но быстро и просто выполняет свою функцию.
У меня работало как на платформе Windows, так и Linux — где сейчас и обитает для экономии ресурсов фермы виртуализации.

ats

 

взято с http://www.tangarus.ru/274/adresnaya-kniga-iz-active-directory-cherez-php/

  1. Алексей on 6 сентября 2012 10:15

    Спасибо. Только в архиве нет файлов search.gif и pixel.gif

  2. TangaRUS on 6 сентября 2012 10:39

    Добавил файлы.

  3. Сергей on 5 декабря 2012 13:55

    Fatal error: Call to undefined function mb_detect_encoding () in C:\Inetpub\wwwroot\ATS\header.inc on line 92

  4. Сергей on 7 декабря 2012 12:02

    Отвечу сам себе: после установки PHP, необходимо раскомментировать строку extension=ext/php_mbstring.dll в PHP.ini, указав правильный путь до библиотеки!

  5. Divest on 11 декабря 2012 12:25

    Спасибо большое, очень

  6. Сергей on 13 декабря 2012 9:52

    Ещё добавочка:

    Если у Вас в конфиге $base_dn содержит русские буквы, например в названии OU, необходимо использовать фукнцию iconv, следующего типа:

    $base_dn = iconv («CP1251»,»utf-8″,»OU=Организация,DC=subdomain,DC=superdomain»);

    Кроме этого, у меня не стреляло без $ldap_port =»389″; в конфиге!

  7. Divest on 17 декабря 2012 15:07

    Notice: Undefined index: params in /var/www/snmpoid.loc/input.php on line 10 Notice: Undefined index: sort_by in /var/www/snmpoid.loc/input.php on line 11 Notice: Undefined index: filter in /var/www/snmpoid.loc/input.php on line 12 Notice: Undefined variable: criteria in /var/www/snmpoid.loc/input.php on line 14

    При пустых значениях так выдает

  8. Divest on 17 декабря 2012 16:06

    Сам себе отвечу.

    Убрал показ ошибок в PHP. А причина ошибок интересна. От PHP далек

  9. Chubaka on 11 марта 2013 18:05

    Привет, а как сделать чтобы выводило поле с почтой ?

  10. TangaRUS on 11 марта 2013 22:09

    В «детальной информации» оно выводится. Надо добавить по аналогии в таблицу (если я правильно понял, что требуется сделать).

  11. Chubaka on 12 марта 2013 9:31

    Ага все правильно Андрей , тупанул =)

    надо в таблицу

    добавить строку Почта

    и добавить вывод запроса нужный порядок

    echo » «.$info[$a][«mail»][0].» «;

  12. Александр on 19 декабря 2013 16:40

    ПРивет!

    Отличный скрипт! Подскажите пож, как в результате поиска выводить пользователей у который в поле номер телефона не заполнено (по-умолчанияю пользователей без номера телефона на отображает)

    Заранее спасибо.

  13. TangaRUS on 20 декабря 2013 16:30

    Фильтры LDAP надо править.

    $filter = «(&(objectCategory=person)(|(objectClass=User)(objectClass=Contact))(|(telephonenumber=*)(mobile=*))(!(msExchHideFromAddressLists=TRUE))(|(displayname=*$criteria*)(department=*$criteria*)(title=*$criteria*)(|(telephonenumber=*$criteria*)(mobile=*$criteria*))))»;

    Попробуй выкинуть «(|(telephonenumber=*)(mobile=*))» из этой строчки.

  14. Александр on 23 декабря 2013 11:43

    Помогло. Спасибо!!

  15. Руслан on 29 июля 2016 15:25

    в архиве не хватает файла detailed_by_dn.php

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *