首页 > 学院 > 网络技术 > 正文

使用PHP连接LDAP服务器

2020-03-15 01:19:43
字体:
来源:转载
供稿:网友

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服务器变量。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表