亚洲AV无码乱码在线观看不卡|最新大伊香蕉精品视频在线|亚洲不卡av一区二区|国产美女无遮挡免费

登錄論壇 | 注冊會(huì)員 設(shè)為首頁 | 收藏本站
當(dāng)前位置 : 首頁>軟件學(xué)院>程序開發(fā)>PHP教程>正文
 
使用PHP連接LDAP服務(wù)器

http://www.yibo1263.com 2008/4/23 15:40:41  來源:本站  編輯:葉子
 

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

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

  我們來做這樣幾件事:

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

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

  我們要做的第一件事情是定義所有欲搜索的LDAP服務(wù)器的信息:
  "LDAP_NAME" = 新的LDAP項(xiàng)目的名字
  "LDAP_SERVER" = 新的LDAP項(xiàng)目的IP地址或者主機(jī)名
  "LDAP_ROOT_DN" = 新的LDAP項(xiàng)目的根的辨識名<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查詢是不一樣的。因此,語句要受到一定的限制,以下是一個(gè)基本的例子。

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

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

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

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

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

  ?> 

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

  如果連接成功,處理查詢:
  如果連接成功的話,我們將得到一個(gè)有效的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é)果集合分配給一個(gè)數(shù)組 
  $result_array = ldap_get_entries($connect_id, $search_id); 
  } 
  else 
  { 
 //顯示連接錯(cuò)誤 
  echo "Could not connect to LDAP server: $LDAP_SERVER[$SERVER_ID]"; 
  } 

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

本新聞共5頁,當(dāng)前在第1頁  1  2  3  4  5  

收藏】【打印】【進(jìn)入論壇
  相關(guān)文章:

·黑客攻擊Discuz內(nèi)幕:PHPWind逃一劫
·詳解如何正確配置PHP開發(fā)環(huán)境
·php自定義獲取來源ip的函數(shù)
·詳解如何正確配置PHP開發(fā)環(huán)境
·PHP教程:如何才能自動(dòng)獲取關(guān)鍵詞 
·PHP服務(wù)器變量設(shè)置方法
·PHP實(shí)現(xiàn)給上傳圖片加水印圖案
·windows服務(wù)器PHP安裝功略
·windows服務(wù)器PHP安裝功略
·PHP面向?qū)ο蠓治鲈O(shè)計(jì)的61條軍規(guī) 
·PHP服務(wù)器變量設(shè)置方法介紹 

 
 
 
最新文章

搶先蘋果,消息稱英特爾芯片采用臺積電
三星揭曉業(yè)內(nèi)首款單條 512GB DDR5 內(nèi)存
vivo 高端新機(jī)爆料:120Hz 曲面屏 + 天
vivo Y21 在印度正式上市:Helio P35 芯
微星推出 GeForce RTX 3080 Sea Hawk X
消息稱三星 Galaxy Tab S8 系列平板將放
機(jī)械革命推出 F6 輕薄本:16 英寸全面屏
英特爾 12 代 Alder Lake CPU 600 系列
雷軍:向小米手機(jī) 1 首批用戶每人贈(zèng)送價(jià)
小米李明談?dòng)脩舯惶叱?nbsp;MIUI 測試版:大

推薦文章
1
2
3
4
5
6
7
8
9
10
叛逆嫩模性感寫真
宮如敏不雅照瘋傳 看張馨予韓一菲獸獸誰
不懼孔子搶位 阿凡達(dá)游戲影音配置推薦
2015第十七屆“東北安博會(huì)”火爆招商
第十六屆東北國際公共安全防范產(chǎn)品博覽
2016年第五屆中國國際商業(yè)信息化博覽會(huì)
2016年第五屆中國國際POS機(jī)及相關(guān)設(shè)備展
互聯(lián)網(wǎng)電視熟了嗎 2013最火電視深解析
桑達(dá)獲邀出席2015中國(廣州)國際POS機(jī)
寶獲利報(bào)名參加“2015年度中國POS機(jī)行業(yè)
八卦圖解 More>>
叛逆嫩模性感寫真 宮如敏不雅照瘋傳 看張馨予韓一菲
周偉童魔鬼身材日本性感寫真圖  聯(lián)想V360筆記本模特寫真