亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網(wǎng)管 > 服務(wù)器 > 正文

使用PHP連接LDAP服務(wù)器

2020-04-18 13:10:19
字體:
供稿:網(wǎng)友

LDAP是一個用來發(fā)布目錄信息到許多不同資源的協(xié)議。通常它都作為一個集中的地址本使用。LDAP最基本的形式是一個連接數(shù)據(jù)庫的標(biāo)準(zhǔn)方式。該數(shù)據(jù)庫為讀查詢作了優(yōu)化。因此它可以很快地得到查詢結(jié)果,不過在其它方面,例如更新,就慢得多。要特別注意的是,LDAP通常作為一個hierarchal數(shù)據(jù)庫使用,而不是一個關(guān)系數(shù)據(jù)庫。因此,它的結(jié)構(gòu)用樹來表示比用表格好。正因為這樣,就不能用SQL語句了。

  簡單說來,LDAP是一個得到關(guān)于人或者資源的集中、靜態(tài)數(shù)據(jù)的快速方式。

  我們來做這樣幾件事:

  設(shè)置公共LDAP服務(wù)器的信息;創(chuàng)建一個LDAP查詢;連接到LDAP服務(wù)器;如果連接成功,處理查詢;格式化輸出;關(guān)閉連接;設(shè)計搜索界面的HTML表格并顯示結(jié)果。

  設(shè)置公共LDAP服務(wù)器的信息:

  我們要做的第一件事情是定義所有欲搜索的LDAP服務(wù)器的信息:
  "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] = ""; 


  //如果沒有選擇服務(wù)器的話將它設(shè)置為0 
  if(!$SERVER_ID) 
  $SERVER_ID=0; 

  ?> 
  建立LDAP查詢:

  前面已經(jīng)提到,LDAP查詢與SQL查詢是不一樣的。因此,語句要受到一定的限制,以下是一個基本的例子。

  //Create Query $ldap_query = "cn=$common"; 

  在我們的例子中,“cn”是我們要進(jìn)行搜索的屬性,而$common是由搜索的form中得到的字符串變量。LDAP的查詢語句語句可使用通配符‘*’。例如‘$stanley’將可以找出‘dan stanley’。

  連接到LDAP服務(wù)器:

  以下的函數(shù)連接到一個LDAP資源,并且將連接的識別號賦給一個變量,就好象連接到一個通常的數(shù)據(jù)庫一樣,例如MySQL。
  <?php 

  //連接到LDAP 
  $connect_id = ldap_connect($LDAP_SERVER[$SERVER_ID]); 

  ?> 

  在我們的例子中,“$connect_id”是連接的識別號,$LDAP_SERVER是可能的ldap服務(wù)器數(shù)組,
而$SERVER_ID是由搜索表格得到的LDAP服務(wù)器變量。

  如果連接成功,處理查詢:
  如果連接成功的話,我們將得到一個有效的LDAP連接識別號,這樣我們就可以處理查詢。

  <?php 

  if($connect_id) 
  { 
  //認(rèn)證
  $bind_id = ldap_bind($connect_id); 

  //執(zhí)行搜索 
  $search_id = ldap_search($connect_id, $LDAP_ROOT_DN[$SERVER_ID], $ldap_query); 

  //將結(jié)果集合分配給一個數(shù)組 
  $result_array = ldap_get_entries($connect_id, $search_id); 
  } 
  else 
  { 
 //顯示連接錯誤 
  echo "Could not connect to LDAP server: $LDAP_SERVER[$SERVER_ID]"; 
  } 

  ?> 
  一旦我們與LDAP服務(wù)器建立好連接,我們就必須進(jìn)行認(rèn)證。PHP在連接大多數(shù)的數(shù)據(jù)庫時,都是通過發(fā)送用戶名和密碼來進(jìn)行的。不過,在LDAP中,認(rèn)證是未知的,直到進(jìn)行一個bind操作。在我們的例子中,“$bind_id”是綁定連接的標(biāo)識符。我們是通過匿名綁定到公共的LDAP服務(wù)器的。因此,在執(zhí)行l(wèi)dap_bind()時,只使用連接識別號就可以了,無需其它的參數(shù)。

  在經(jīng)過認(rèn)證后,我們就可以使用ldap_search()函數(shù)來執(zhí)行查詢,產(chǎn)生的$search_id是我們搜索的連接識別符。

  然后,我們使用ldap_get_entries()函數(shù)將結(jié)果集賦給$result_array變量。這樣我們能夠以邏輯的方式排列信息,以便顯示。

  格式化輸出:

  在執(zhí)行完LDAP搜索后,返回的數(shù)據(jù)是以查找的順序排列的。不過我們在排序時沒有SQL這樣方便,使用ORDER BY語句就可以了。通常多數(shù)公共的LDAP目錄都沒有標(biāo)準(zhǔn)的大小規(guī)范。排序是基于字符的ASCII值,我們必須將字符全部格式化為小寫,以便按字母的順序輸出。

  LDAP結(jié)果集是一個多維的數(shù)組,腳本中的$result_array的結(jié)構(gòu)如下:
  $result_array[0]["cn"] [0] = "Dannie Stanley"
  ["dn"] [0] = "uid=dannie,dc=spinweb.net"
  ["givenname"][0] = "Dannie"
  ["sn"] [0] = "Stanley"
  ["mail"] [0] = "danSPAM@spinweb.net"
  $result_array[1]["cn"] [0] = "Michael Reynolds"
  ["dn"] [0] = "uid=michael,dc=spinweb.net"
  ["givenname"][0] = "Michael"
  ["sn"] [0] = "Reynolds"
  ["mail"] [0] = "michaelSPAM@spinweb.net" 

  數(shù)據(jù)以這種格式存放的原因是每個屬性都可能有超過一個值(象樹的結(jié)構(gòu))。例如,如果我的名
字是‘Dannie’,我還可以在LDAP中增加一些屬性,例如:

  $result_array[0]["cn"] [0] = "Dannie Stanley"
  ["dn"] [0] = "uid=dannie,dc=spinweb.net"
  ["givenname"][0] = "Dannie"
  ["givenname"][0] = "Dan"
  ["sn"] [0] = "Stanley"
  ["mail"] [0] = "danSPAM@spinweb.net"

  在我們的搜索中,我們只關(guān)心每個屬性的首個值,因此除了dn只有一個值外,其它我們只使用每
個屬性中序號為0的值。以下就是屬性和它們含義的簡單列表:

  "cn" = Common Name
  "dn" = Distinguished Name
  "givenname" = First Name
  "sn" = Last Name
  "mail" = Email地址


  <?php 

  //如果搜索成功,將結(jié)果排序 
  if($result_array) 
  { 
  for($i=0; $i { 
  $format_array[$i][0] = strtolower($result_array[$i]["cn"][0]); 
  $format_array[$i][1] = $result_array[$i]["dn"]; 
  $format_array[$i][2] = strtolower($result_array[$i]["givenname"][0]); 
  $format_array[$i][3] = strtolower($result_array[$i]["sn"][0]); 
  $format_array[$i][4] = strtolower($result_array[$i]["mail"][0]); 
  } 

  //排序數(shù)組 
  sort($format_array, "SORT_STRING"); 

  for($i=0; $i { 
  $cn = $format_array[$i][0]; 
  $dn = $format_array[$i][1]; 
  $fname = ucwords($format_array[$i][2]); 
  $lname = ucwords($format_array[$i][3]); 
  $email = $format_array[$i][4]; 

  if($dn && $fname && $lname && $email) 
  { 
  $result_list .= "$fname $lname"; 
  $result_list .= " <$email〉
  /n"; 
  } 
  elseif($dn && $cn && $email) 
  { 
  $result_list .= "<A href='/"ldap://$LDAP_SERVER[$SERVER_ID]/$dn/"'>$cn</A>"; 
  $result_list .= " <A href='/"mailto:$email/"'>$email</A>
  /n"; 
 ?。?nbsp;
 ?。?nbsp;
 ?。?nbsp;
  else 
  { 
  echo "Result set empty for query: $ldap_query"; 
  } 

  ?> 
  $format_array是我們建立的新數(shù)組,里面包括有查詢的結(jié)果,并且被格式化用作輸出。首先循環(huán)$result_array中的每個元素,并且將它分配給一個兩維的數(shù)組用作排序。同時我們使用strtolower()函數(shù)將所有的值變?yōu)樾憽?/P>

  我們使用PHP自帶的一個稱為sort()的函數(shù)進(jìn)行排序。首個參數(shù)是要排序的數(shù)組,另一個是要執(zhí)行的排序類型,該類型是由PHP的文檔定義的。由于我們根據(jù)字符串排序,我們使用“SORT_STRING”。

  我們循環(huán)已經(jīng)格式化好的數(shù)組,并且將它分配給一個名字為$result_list的輸出字符,該字符包含了HTML描述。要特別注意的是,在超鏈接中,我使用的是ldap的URL格式。這個格式的例子類似:

   HREF="ldap://ldap.domain.net/uid=dannie,dc=domain.net"。

  關(guān)閉連接:


  現(xiàn)在我們所有的數(shù)據(jù)已經(jīng)包含在$result_list中了,我們可以安全地關(guān)閉LDAP的連接。
  <?php 

  //關(guān)閉連接
  ldap_close($connect_id); 

  ?>

  定制搜索界面的HTML表格:
  最后,我們要定制搜索用的HTML表格,它是用來給用戶執(zhí)行搜索的。

    <?php
  //定制表格
  echo " <CENTER><FORM action='/"$PHP_SELF/"' method='/"GET/"'>"; 
  echo "Search in:<SELECT name='/"SERVER_ID/"'>"; //循環(huán)以建立SELECT選項for($i=0;
$i<COUNT($LDAP_NAME); <br $i++=> echo "<OPTION selectedvalue='/"$i/"'>".
$LDAP_NAME[$i]."</OPTION>"; 
  echo "</SELECT>"; 
  echo "Search for:<INPUT name='/"common/"' type='/"text/"'>"; 
  echo "<INPUT name='/"lookup/"' type='/"submit/"' value='/"go/"'>"; 
  echo "(You can use * for wildcard searches, ex. * Stanley will find 
all Stanleys)"; 
  echo "</FORM></CENTER>"; 

  ?> 
  代碼中的$PHP_SELF是一個全局的常量,代表的是腳本頁面自身,其中的循環(huán)是用來通過我們的$LDAP_NAME變量創(chuàng)建SELECT選項。

  顯示結(jié)果:

  現(xiàn)在所有的工作已經(jīng)完成了,我們將打印出結(jié)果集。如果沒有符合的結(jié)果,將會顯示"No Results"的信息。
  <?php 

  //顯示結(jié)果
  if($result_list) 
  { 
  echo " <CENTER><TABLE border='/"1/"' cellPadding='/"10/"' cellSpacing='/"0/"' 
  BGCOLOR=/"#FFFFEA/" WIDTH=/"450/"> <TBODY><TR><TD>$result_list</TD></TR>
  </TBODY></TABLE></CENTER>"; 
  } 
  else 
  echo "No Results"; 


  ?> 

  源代碼

  以下是完整的源代碼,只要將它剪切并粘貼到一個HTML文檔,就可以嘗試一下了。

  <?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] = ""; 

  //如果沒有選擇服務(wù)器的話將它設(shè)置為0 
  if(!$SERVER_ID) 
  $SERVER_ID=0; 

  //建立查詢
  $ldap_query = "cn=$common"; 

  //連接到LDAP 
  $connect_id = ldap_connect($LDAP_SERVER[$SERVER_ID]); 

  if($connect_id) 
  { 
  //認(rèn)證 
  $bind_id = ldap_bind($connect_id); 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产呦萝稀缺另类资源| 欧美国产日产图区| 男人晚上看的视频| 亚洲国产精久久久久久久| 国产真实乱在线更新| 欧美国产亚洲一区| 宅男噜噜噜66国产免费观看| 亚洲欧美aⅴ...| 在线免费高清一区二区三区| 国产精品99久久99久久久二8| 青娱乐国产91| 小泽玛利亚一区二区三区视频| 天天操天天干天天摸| 91系列在线观看| 国产精品揄拍一区二区| 国产成人亚洲精品乱码在线观看| 在线视频1卡二卡三卡| 国产又白又嫩又爽又黄| 人人干人人草| 欧美一级片免费| 精品视频vs精品视频| 午夜宅男在线视频| 日韩porn| 亚洲一区二区伦理| 97视频国产在线| 国产精品25p| 亚洲精品网站在线播放gif| 亚洲一区二区三区sesese| 国产综合中文字幕| 欧美边添边摸边做边爱免费| 国产日产欧美一区二区三区| 国产激情一区二区三区在线观看| 亚洲国产成人精品一区二区三区| 免费成人看片| 久久精品久久99| 国模私拍一区二区国模曼安| 国产v日产∨综合v精品视频| 欧美女子与性| 亚洲精品国产精品乱码| japan乱配videos老少配| 99亚洲乱人伦aⅴ精品| 亚洲精品乱码久久久久久蜜桃91| 国产精品久久久久9999高清| 日本在线播放不卡| 日本日本精品二区免费| 欧美成人免费视频a| 久久精品国产精品亚洲精品| 国产乱码精品一区二区三| 中文字幕无码精品亚洲35| 国产三级三级三级看三级| 99久久精品一区二区成人| 手机av在线| av有声小说一区二区三区| av中文在线播放| 久久香蕉综合色| 免费看a在线观看| www.亚洲色图| 国产美女福利在线观看| 国产成人精品综合在线观看| 亚洲女厕所小便bbb| 国产日本欧美一区二区三区在线| 91情侣在线视频| 日本a视频在线观看| 视频一区在线视频| 成人免费黄色在线| 欧美孕妇孕交xxⅹ孕妇交| 农村老熟妇乱子伦视频| 午夜在线视频一区二区区别| 日韩女优毛片在线| 国产精品久久久久91| 国产永久免费高清在线观看| 毛片毛片毛片毛片毛片毛片| www.色多多| 欧洲亚洲精品| 欧美 日韩 国产一区| 丁香五月网久久综合| 国产成人艳妇aa视频在线| 性欧美在线看片a免费观看| 亚洲精品xxxx| 中文字幕综合一区| 欧美艾v福利视频在线观看| 精品久久国产97色综合| 91亚洲永久免费精品| 日韩欧美大片在线观看| 欧美日韩国产精品成人| 中文在线a在线| 国产又粗又猛又爽又| 日韩欧美伦理电影院| 欧美激情视频播放| 国产探花在线观看| 免费成人深夜夜行p站| 亚洲人成精品久久久久久| 国产精品久久久久aaaa| 中文字幕中文字幕在线十八区| 欧美日韩亚洲一区二区| 欧美精品一区视频| 亚洲久久一区二区| 思思99精品视频在线观看| 亚洲午夜精品17c| 中国大陆高清aⅴ毛片| 欧美人与性动交α欧美精品图片| 日本午夜精华| 日韩黄色在线| а天堂8中文最新版在线官网| 亚洲qvod图片区电影| h小视频在线观看网| 久久天天躁日日躁| 亚洲天堂国产视频| 刘亦菲久久免费一区二区| 日日夜夜精品免费| 娇妻被老王脔到高潮失禁视频| segui88久久综合| 国产成人香蕉在线视频fuz| bdsmchinese医疗折磨| 野花国产精品入口| 国产精品一二三在线| 在线观看日韩av先锋影音电影院| 91在线视频免费| 欧美日韩视频精品一区二区| 成人免费无遮挡| 久久免费精品国产久精品久久久久| 亚洲第一二三四区| 日本不卡视频一二三区| 2022亚洲天堂| 成人乱码手机视频| 欧美男gay| 九九这里只精品视在线99| 国产精品老女人视频| 国产毛片欧美毛片久久久| 国产一级黄色电影| 黄色一级视频在线播放| 黄色精品在线观看| 一区二区三区|亚洲午夜| 成人网ww555视频免费看| 美女又爽又黄免费| 国产hs免费高清在线观看| 午夜亚洲国产au精品一区二区| 黄网站网址视频| 欧美丰满少妇xxxxx| 欧美色视频日本版| 日韩免费观看高清完整版在线观看| 粉嫩在线一区二区三区视频| 一级做a爰片久久毛片美女图片| 欧美性狂猛xxxxxbbbbb| 欧美性受ⅹ╳╳╳黑人a性爽| 国产在线一区二区综合免费视频| 日日摸夜夜添夜夜添亚洲女人| 天堂中文在线视频| www.亚洲在线| proumb性欧美在线观看| 特黄特色特刺激视频免费播放| 久久久久99精品成人片毛片| 国产欧美日韩视频在线观看| 中文字幕av专区| 国内精品久久久久久影院8f| 波多野结衣中文一区| 国内精品一区视频| 在线观看免费中文字幕| av成人动漫| 国产精品蜜臀在线观看| 欧美一区二区视频在线观看| 在线国产一区二区| 日韩av大片| 亚洲天堂第一区| 亚洲精品黄网在线观看| 四虎成人免费在线| 蜜桃精品wwwmitaows| 99久久伊人网影院| 亚洲四虎av| 国产精伦一区二区三区| 国产精品特级毛片一区二区三区| 欧美日韩国产免费观看| 国产 福利 在线| 日本成人在线视频网站| 亚洲精品久久在线| 亚洲色图日韩精品| 性娇小13――14欧美| 欧美成人中文字幕在线| 久久久久久九九九九九| 国产精品久久久久9999爆乳| 涩涩在线视频| 91美女在线免费观看| 免费h片在线| 成人网站免费观看入口| 久久久91精品国产一区二区三区| 欧美 日韩 国产 成人 在线 91| 天天成人综合网| 日本精品在线免费观看| 成人3d精品动漫精品一二三| 97在线视频免费播放| 亚洲欧美日本伦理| 在线观看成人毛片| 99re6热在线精品视频| www久久久久久| 亚洲影音先锋| 欧美人与禽猛交乱配视频| caoporn-草棚在线视频最| 少妇av片在线观看| ass大特写| 狠狠躁天天躁日日躁欧美| 日韩电影中文字幕在线| 国产精品视频线看| 男女猛烈无遮挡| 国产精品1区2区3区在线观看| 日韩在线播放一区二区| 亚洲四区在线观看| 94色蜜桃网一区二区三区| 成人福利在线| 狠狠色狠狠色综合日日小说| 日韩mv欧美mv国产网站| 日韩中文字在线| 久久精品波多野结衣| 日韩欧美亚洲成人| 国产va在线观看| 亚洲男子天堂网| 欧美最猛性xxxx| 天堂在线中文网官网| 亚洲性猛交富婆| 亚洲视频欧洲视频| 国内国产精品久久| 黄色影院一级片| 一本一道久久a久久精品综合| 国产麻豆精品一区二区| 日本韩国在线视频| 国产精品福利电影一区二区三区四区| 狂野欧美一区| 欧美日韩国产精品一区二区不卡中文| 夜夜嗨av一区二区三区免费区| 国产精品毛片a∨一区二区三区| 99久久www免费| 国产一级电影网| 久久久久九九视频| 国产精品日韩欧美综合| 国产又大又黄又爽| 狠狠色伊人亚洲综合网站l| 日韩精品亚洲视频| 麻豆av免费在线| 亚洲一区二区精品3399| 色中色777| 国产高潮国产高潮久久久91| 欧美午夜女人视频在线| 91国模少妇一区二区三区| 国产精品一二三区在线观看| av日韩久久| 青青草国产成人99久久| 天天综合网天天做天天受| 一级毛片在线看| 亚洲欧美日韩区| 欧美激情免费观看| 国产精品久久久久7777| 欧洲一区在线| 国产成人精品免高潮在线观看| 久久一区二区三区四区| 欧美韩国日本一区| 日韩大片在线| 性生交免费视频| 国产精品igao激情视频| 含羞草久久爱69一区| 黑人巨大精品欧美一区二区免费| 精品影片一区二区入口| 亚州黄色一级| av在线网站免费观看| 久久久久久免费看| 在线播放/欧美激情| 国产精品亚洲视频在线观看| 精品国产网站| 日本性生活网站| 一区二区三区在线视频观看58| 亚洲综合精品自拍| 中文字幕人妻一区二区三区在线视频| 最近中文字幕在线观看视频| 麻豆视频免费看| 欧美三级午夜理伦| 日本性高潮视频| 国产成人久久精品一区二区三区| 中文一区在线观看| 欧美tk丨vk视频| 亚洲mmav| 久久精品中文字幕一区二区三区| 欧美精品99久久| 国产精品19p| 51vv免费精品视频一区二区| 九九精品在线视频| 欧美理论片在线观看| 99热精品在线观看| 香蕉视频在线免费| 亚洲精品国产综合久久| 日韩av片子| 一区二区中文视频| 9191久久久久久久久久久| 亚洲少妇激情视频| 中文字幕av不卡| 五月天色综合| 久久精品视频免费在线观看| 99久久久无码国产精品衣服| 午夜黄色福利视频| 香蕉视频免费网站| 激情丁香在线| 久久久久久久久黄色| av亚洲产国偷v产偷v自拍| 一起操在线视频| 自拍日韩亚洲一区在线| 四虎永久免费影库二三区| 久久久久久电影| 超碰porn在线| 视频三区在线| 欧美在线看片| 欧美综合国产| 91精品在线免费视频| 一区二区乱子伦在线播放| 日韩88av| 精品国产免费第一区二区| 欧美精品一区二区三区久久久| 九色丨porny丨| 日本在线视频一区| 成人免费网站在线观看| 欧美成人激情在线| 欧美videos另类精品| 六月丁香激情网| 激情欧美一区| 色欲无码人妻久久精品| 国产黄色高清在线| www国产在线| 调教驯服丰满美艳麻麻在线视频| 日韩中文字幕亚洲一区二区va在线| 日韩av在线电影| 欧美极品欧美精品欧美| 午夜免费啪视频观看视频|