LDAP是一個用來發布目錄信息到許多不同資源的協議。通常它都作為一個集中的地址本使用。LDAP最基本的形式是一個連接數據庫的標準方式。該數據庫為讀查詢作了優化。因此它可以很快地得到查詢結果,不過在其它方面,例如更新,就慢得多。要特別注意的是,LDAP通常作為一個hierarchal數據庫使用,而不是一個關系數據庫。因此,它的結構用樹來表示比用表格好。正因為這樣,就不能用SQL語句了。
簡單說來,LDAP是一個得到關于人或者資源的集中、靜態數據的快速方式。
我們來做這樣幾件事:
設置公共LDAP服務器的信息;創建一個LDAP查詢;連接到LDAP服務器;如果連接成功,處理查詢;格式化輸出;關閉連接;設計搜索界面的HTML表格并顯示結果。
設置公共LDAP服務器的信息:
我們要做的第一件事情是定義所有欲搜索的LDAP服務器的信息:
"LDAP_NAME" = 新的LDAP項目的名字
"LDAP_SERVER" = 新的LDAP項目的IP地址或者主機名
"LDAP_ROOT_DN" = 新的LDAP項目的根的辨識名<XMP>
<?php
$LDAP_NAME[0] = "Netscape Net Center";
$LDAP_SERVER[0] = "memberdir.netscape.com";
$LDAP_ROOT_DN[0] = "ou=member_directory,o=netcenter.com";
$LDAP_NAME[1] = "Bigfoot";
$LDAP_SERVER[1] = "ldap.bigfoot.com";
$LDAP_ROOT_DN[1] = "";
//如果沒有選擇服務器的話將它設置為0
if(!$SERVER_ID)
$SERVER_ID=0;
?>
建立LDAP查詢:
前面已經提到,LDAP查詢與SQL查詢是不一樣的。因此,語句要受到一定的限制,以下是一個基本的例子。
//Create Query $ldap_query = "cn=$common";
在我們的例子中,“cn”是我們要進行搜索的屬性,而$common是由搜索的form中得到的字符串變量。LDAP的查詢語句語句可使用通配符‘*’。例如‘$stanley’將可以找出‘dan stanley’。
連接到LDAP服務器:
以下的函數連接到一個LDAP資源,并且將連接的識別號賦給一個變量,就好象連接到一個通常的數據庫一樣,例如MySQL。
<?php
//連接到LDAP
$connect_id = ldap_connect($LDAP_SERVER[$SERVER_ID]);
?>
在我們的例子中,“$connect_id”是連接的識別號,$LDAP_SERVER是可能的ldap服務器數組,
而$SERVER_ID是由搜索表格得到的LDAP服務器變量。
新聞熱點
疑難解答