简单生活 发表于 2015-2-3 23:29:33

PHP网页设计linux ldap认证:windos 和 linux 下完成...

多去关于PHP的网站,尤其有很多经典的文章,多读读这些文章显然是有好处的。   
我如今的老板曾请求我为企业外部互联网的Web办事供应一种尺度的身份验证办法。我碰到的一个次要成绩就是咱们公司次要利用了两种平台:UNIX和Windows。所以,我的第一个设法其实不很胜利:它请求每一个员工都利用UNIX或Linux而保持Windows。
我以为处理如今的UNIX/Windows成绩的最好办法就是使用PHP的LDAP特征。因为LDAP办事器,请求我利用现有的体系,次要指的是一个伟大的Microsoft Exchange Server体系。我十分乐意利用Exchange,它很牢靠,并且LDAP特征的利用和设置装备摆设也极其复杂。不外,请你注重:这套计划就身份验证角度来看并非最平安的。假如有较初等级的平安需求,我激烈建议你采取LDAP和SSL。
从哪里入手下手进修
为了让你入门,我给出了一个PHP LDAP函数的清单并对函数的功效赐与扼要申明。然后,我将演示若何创立到LDAP办事器的毗连并验证用户。为了代码复杂起见,我将演示PHP毗连的功效和若何绑定到LDAP办事器。
一对绝配:PHP和LADP
上面是我在例子中将要利用的函数的清单。网上有相干材料。
ldap_connect—用来毗连LDAP办事。
ldap_bind—用来绑定到特定的LDAP目次。
ldap_error—从LDAP办事器上取得毛病信息。
ldap_search—用来入手下手搜刮。
ldap_get_entries—从搜刮了局中取得多个了局。
ldap_close—封闭LDAP毗连。
如今我在例子中演示若何利用第一个函数(代码清单A)并恰当引见该函数的功效。
<?php
// LDAP variables
$ldap[‘user’] = ‘uname’;
$ldap[‘pass’] = ‘password’;
$ldap[‘host’] = ‘ldap.example.com’;
$ldap[‘port’] = 389;
$ldap[‘dn’] = ‘cn’.$ldap[‘user’].’,ou=Department,o=Company Name’;
$ldap[‘base’] = ‘’;
// connecting to ldap
$ldap[‘conn’] = ldap_connect( $ldap[‘host’], $ldap[‘port’] )
or die( “Could not connect to {$ldap[‘host’]}” );
?>
将会前往一个到LDAP办事器的毗连(也称为资本,即resource)。ldap_connect函数有两个参数:主机(host)和端口。第一个参数:主机就是LDAP主机称号,第二个参数是LDAP运转的端口。默许情形下,LDAP利用的端标语为389。假如你需求到LDAP办事器的一个平安毗连,你可以把参数host改成一个你可以会见的LDAP办事器的URL,以下所示:
$ldap[‘conn’] = ldap_connect( “ldaps://ldap.example.com” );
因为你指定了URL而不是办事器称号,在这类办法下,你就不需求利用端口参数了。需求切记的一点就是切实称号需求与加密套接字协定层证书(the SSL certificate)对应。
<?php
// LDAP variables
$ldap[‘user’] = ‘uname’;
$ldap[‘pass’] = ‘password’;
$ldap[‘host’] = ‘ldap.example.com’;
$ldap[‘port’] = 389;
$ldap[‘dn’] = ‘cn’.$ldap[‘user’].’,ou=Department,o=Company Name’;
$ldap[‘base’] = ‘’;
// connecting to ldap
$ldap[‘conn’] = ldap_connect( $ldap[‘host’], $ldap[‘port’] )
or die( “Could not connect to {$ldap[‘host’]}” );
// binding to ldap
$ldap[‘bind’] = ldap_bind( $ldap[‘conn’], $ldap[‘dn’], $ldap[‘pass’] );
?>
演示了若何用用户名和口令来绑定到办事器。我创立了一个适合的域名(domain name ,DN)并用用户的口令来正当毗连到LDAP。咱们经由过程利用域名和口令就能够让LDAP办事器经由过程身份认证并答应绑定毗连,如许咱们就胜利的绑定上了。ldap_bind的前往值是一个布尔类型。咱们可以依据前往值判别用户的登录证书是不是无效。当这个进程停止后,你就能够晓得用户身份是不是失掉了认证。
假如产生了毛病会如何?挪用ldap_error函数是判别产生了甚么毛病的好办法。ldap_error函数前往了一个字符串,个中包括了LDAP办事器产生的最初毛病的信息。

<?php
// LDAP variables
$ldap[‘user’] = ‘uname’;
$ldap[‘pass’] = ‘password’;
$ldap[‘host’] = ‘ldap.example.com’;
$ldap[‘port’] = 389;
$ldap[‘dn’] = ‘cn’.$ldap[‘user’].’,ou=Department,o=Company Name’;
$ldap[‘base’] = ‘’;
// connecting to ldap
$ldap[‘conn’] = ldap_connect( $ldap[‘host’], $ldap[‘port’] )
or die( “Could not connect to server {$ldap[‘host’]} );
// binding to ldap
$ldap[‘bind’] = ldap_bind( $ldap[‘conn’], $ldap[‘dn’], $ldap[‘pass’] );
if( !$ldap[‘bind’] )
{
echo ldap_error( $ldap[‘conn’] );
exit;
}
?>
中,我向剧本中添加了ldap_error函数,假如绑定到LDAP办事器的用户身份没有失掉确认,那末代码将加入运转。该函数前往一个字符串,该字符串包括了发送到LDAP办事器的最初一条指令发生的毛病信息。假如你按给定用户名和口令的绑定没有胜利登录,那末毛病信息将包括这对有效的用户名和口令。
在咱们的最初一个例子中
<?php
// LDAP variables
$ldap[‘user’] = ‘uname’;
$ldap[‘pass’] = ‘password’;
$ldap[‘host’] = ‘ldap.example.com’; 本文链接http://www.cxybl.com/html/wlbc/Php/20121126/34395.html会PHP吗?会,我会把一加一的运算写在函数里,然后调用啦!

乐观 发表于 2015-2-3 23:44:51

其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。

金色的骷髅 发表于 2015-2-19 04:32:15

兴趣是最好的老师,百度是最好的词典。

小女巫 发表于 2015-3-3 16:20:37

真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,

小妖女 发表于 2015-3-9 15:04:24

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

第二个灵魂 发表于 2015-3-11 18:08:37

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

飘飘悠悠 发表于 2015-3-16 04:02:20

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

谁可相欹 发表于 2015-3-20 19:41:44

这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。

柔情似水 发表于 2015-3-25 03:07:48

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

愤怒的大鸟 发表于 2015-3-28 21:57:38

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,

飘灵儿 发表于 2015-4-3 21:10:33

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。

兰色精灵 发表于 2015-4-8 19:23:30

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

若相依 发表于 2015-4-16 00:09:02

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

精灵巫婆 发表于 2015-4-28 06:56:58

做为1门年轻的语言,php一直很努力。

活着的死人 发表于 2015-5-9 03:33:21

曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;

因胸联盟 发表于 2015-6-16 20:38:51

至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。

再现理想 发表于 2015-6-28 16:13:06

刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。

简单生活 发表于 2015-7-1 20:52:08

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

admin 发表于 2015-7-2 10:15:40

php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)

若天明 发表于 2015-7-11 09:26:11

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
页: [1]
查看完整版本: PHP网页设计linux ldap认证:windos 和 linux 下完成...