php连接ldap服务器,使用PHP连接LDAP服务器[通俗易懂]

php连接ldap服务器,使用PHP连接LDAP服务器[通俗易懂]LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用。LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。要特别注意的是,LDAP通常作为一个hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。正因为这样,就不能用SQL语句了。简单说来,LD…

大家好,又见面了,我是你们的朋友全栈君。

LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用。LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。要特别注意的是,LDAP通常作为一个hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。正因为这样,就不能用SQL语句了。

简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。

我们来做这样几件事:

设置公共LDAP服务器的信息;创建一个LDAP查询;连接到LDAP服务器;如果连接成功,处理查询;格式化输出;关闭连接;设计搜索界面的HTML表格并显示结果。

设置公共LDAP服务器的信息:

我们要做的第一件事情是定义所有欲搜索的LDAP服务器的信息:

“LDAP_NAME” = 新的LDAP项目的名字

“LDAP_SERVER” = 新的LDAP项目的IP地址或者主机名

“LDAP_ROOT_DN” = 新的LDAP项目的根的辨识名

$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。

//连接到LDAP

$connect_id = ldap_connect($LDAP_SERVER[$SERVER_ID]);

?>

在我们的例子中,“$connect_id”是连接的识别号,$LDAP_SERVER是可能的ldap服务器数组,

而$SERVER_ID是由搜索表格得到的LDAP服务器变量。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146505.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python实现卷积操作

    python实现卷积操作文章目录调用tf.nn.conv2d()实现卷积自己实现卷积函数我们知道,tensorflow里面自带卷积函数,tf.nn.conv2d()就可以实现相关功能,本文主要是自己实现卷积操作,然后和tf.nn.conv2d()函数的结果对比,验证正确性。调用tf.nn.conv2d()实现卷积首先是调用卷积函数实现卷积操作:这里说明一下conv2d的定义及参数含义:参考【定义:】tf.n…

    2022年5月28日
    32
  • Django用户登录与注册系统[通俗易懂]

    1.1.创建项目和appdjango-adminstartprojectmysite_loginpythonmanage.pystartapplogin1.2.设置时区和语言Django默认使用美国时间和英语,在项目的settings文件中,如下所示:LANGUAGE_CODE=’en-us’TIME_ZONE=’UTC’USE_I18N=TrueUSE_L1…

    2022年4月6日
    40
  • 使用Fastjson生成Json字符串少字段属性(数据丢失)「建议收藏」

    在开发中经常要使用到fastJson来转换对象为json 串,但是最近发现在一个对象转换的时候,总是丢失了一个字段的值,(数据丢失).就很纳闷。到网上找了很多方法总是不行,最后总算是在一篇博文中看到问题的关键!现在整理如下,希望可以帮助到更多的人。package per.eblink.pojo; public class Node { private String id

    2022年2月24日
    89
  • ssm框架过时了吗_tomcat和maven的区别

    ssm框架过时了吗_tomcat和maven的区别日志如果一个数据库操作,出现了异常,我们需要排错,日志就是最好的助手曾经:sout,debug现在:日志工厂掌握STDOUT_LOGGINGLOG4Jlog4j什么是Log4j?我们可以控制日志信息输送的目的地是控制台我们也可以控制每一条日志的输出格式通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。分页减少数据量selsect * from user limit startIndex,pageS

    2022年8月8日
    8
  • MySQL数据库基础知识点总结

    MySQL数据库基础知识点总结1数据库简介数据库(Database)就是按照数据结构来组织,存储和管理数据的仓库专业的数据库是专门对数据进行创建,访问,管理,搜索等操作的软件,比起我们自己用文件读写的方式对象数据进行管理更加的方便,快速,安全1.1作用对数据进行持久化的保存方便数据的存储和查询,速度快,安全,方便可以处理并发访问更加安全的权限管理访问机制1.2数据库类型1.3常见的数据库类型常见数据库类型分两大类,一类是关系型数据库。另一类是非关系型数据库。关系型数据库:MySQL,Oracle,P

    2022年8月20日
    5
  • android之Display.getRotation()_传感器控制屏幕旋转

    在看android自带的samples源码里面的AccelerometerPlayActivity时,看到下面这段代码,很不理解public void onSensorChanged(SensorEvent event) { if(event.sensor.getType() != Sensor.TYPE_ACCELEROMETER){ return; } switch (m

    2022年3月10日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号