Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / PHP / Руководство по РНР 3.0 / Справочник функций /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


LDAP Функции - Программирование от RIN.RU
LDAP Функции

ldap_add
ldap_bind
ldap_close
ldap_connect
ldap_count_entries
ldap_delete
ldap_dn2ufn
ldap_explode_dn
ldap_first_attribute
ldap_first_entry
ldap_free_result
ldap_get_attributes
ldap_get_dn
ldap_get_entries
ldap_get_values
ldap_list
ldap_modify
ldap_next_attribute
ldap_next_entry
ldap_read
ldap_search
ldap_unbind



Введение в LDAP


LDAP (Lightweight Directory Access Protocol) - Протокол Доступа к Директориям (каталогам), является протоколом, используемым для доступа к "Серверам Каталогов". Директория является специальной разновидностью базы данных, которая хранит информацию используя древовидную структуру.


Эта концепция аналогична структуре каталога на вашем жестком диске, за исключением того что в данном контексте корневой каталог рассматривается как "весь мир" а подкаталоги первого уровня как "страны". Более низкие уровни структуры директории содержат входы для компаний, организаций или мест, на уровне еще ниже находятся входы каталога для людей, и возможно для оборудования или документов.


Для ссылки на файл в подкаталоге на жестком диске используется нечто подобное


/usr/local/myapp/docs


Прямая косая черта отмечает каждый раздел в ссылке, а вся последовательность символов ссылки читается слева направо.


Эквивалентом полностью определенной ссылки в LDAP является "distinguished name" (различаемое имя), обозначаемое просто как "dn". Примером dn может быть:


cn=John Smith,ou=Accounts,o=My Company,c=US


Каждый раздел такой ссылки отмечается запятой, а вся последовательность читается справа налево. Ссылка читается как ..


country = US
organization = My Company
organizationalUnit = Accounts
commonName = John Smith


Так же как и при организации структуры каталога на жестком диске, в данном способе нет жестких правил по организации структуры, и менеджер сервера директории LDAP допускает любую структуру, подходящую для выбранной цели. Однако имеется ряд соглашений. Суть их в том, что вы не можете написать код доступа к серверу директории, не зная его структуры, так же как вы не можете использовать базу данных без представления о ее предназначении. Пример полной программы


Поиск информации для всех записей, где фамилия начинается с "S", в сервере директории, вывод на дисплей и извлечение с именем и email-адресом.


Пример. Пример поиска в LDAP




<?php
// базовая последовательность в LDAP это соединение, связь,
// поиск, интерпретация поиска, результат, закрытие соединения


echo "<h3>LDAP тест запроса</h3>";
echo "Соединение ...";
$ds=ldap_connect("localhost"); // должен существовать LDAP-сервер!
echo "результат соединения ".$ds."<p>";


if ($ds) {
echo "Установка связи ...";
$r=ldap_bind($ds); // это "anonymous" связь, обычно доступ
// только для чтения, вывод "Результат связи.."
echo "Результат связи ".$r."<p>";


echo "Поиск для (sn=S*) ...";
// Поиск записи с фамилией
$sr=ldap_search($ds,"o=My Company, c=US", "sn=S*");
echo "Результат поиска ".$sr."<p>";


echo "Количество возвращенных записей ".ldap_count_entries($ds,$sr)."<p>";


echo "Получение записей ...<p>";
$info = ldap_get_entries($ds, $sr);
echo "Данные для ".$info["count"]." объектов возвращены:<p>";


for ($i=0; $i<$info["count"]; $i++) {
echo "dn is: ". $info[$i]["dn"] ."<br>";
echo "первая запись cn: ". $info[$i]["cn"][0] ."<br>";
echo "первая запись email: ". $info[$i]["mail"][0] ."<p>";
}


echo "Закрытие соединения";
ldap_close($ds);


} else {
echo "<h4>Нет соединения с LDAP сервером</h4>";
}
?>





Использование PHP LDAP вызовов


Вам потребуется установить и скомпилировать библиотеки LDAP-клиента или из пакета University of Michigan ldap-3.3, или из Netscape Directory SDK. Вам также потребуется перекомпилировать PHP с поддержкой LDAP для того чтобы применение PHP LDAP вызовов стало доступным.


Прежде чем использовать LDAP вызовы, необходимо знать ..


Имя или адрес сервера директории, который вы будете использовать


"Базовый dn" сервера (часть "мирового" каталога на данном сервере, которая может быть "o=My Company,c=US")
Нужен ли пароль для доступа к данному серверу (многие серверы обеспечивают доступ для чтения для "anonymous связей" но требуют пароля для чего-либо еще)


Типичная последовательность LDAP-вызовов, которую вы можете применять в приложениях, представлена в следующем щаблоне:


ldap_connect() // установка соединения с сервером
|
ldap_bind() // анонимный или идентифицируемый "вход"
|
действия подобные поиску или обновлению каталога
с выводом результата


|
ldap_close() // "выход"


Дополнительная информация


Большое количество информации по LDAP может быть найдено:


Netscape
University of Michigan
OpenLDAP Project
LDAP World


Netscape SDK одержит полезное Руководство Программиста в .html формате.


Вперед  >>>
 1  2 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Adabas D функции

Специфичные функции Apache

Функции обработки массивов

Математические BC (произвольной точности) функции

Календарные Функции

Функции Даты/Времени

dBase функции

Функции dbm

Функции для работы с каталогами

Функции запуска программ

Функции работы с filePro

Функции файловой системы

Функции, связанные с HTTP

Функции работы с Hyperwave

Функции работы с изображениями

Функции IMAP

PHP опции и информация

Функции работы с Informix

Почтовые функции

Математические функции

Дополнительные функции

Функции mSQL

Функции MySQL

Функции для работы с Sybase

Сетевые функции

Функции ODBC

Функции Oracle

Функции PDF

Функции PostgreSQL

Функции регулярных выражений

Функции семафоров и разделяемой памяти

Solid (надежные) функции

Функции SNMP

Строковые функции

Функции URL

Функции переменных

Функции Vmailmgr

Функции Gz-файлов

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь