/**
* ldap 备份
* @param int $cardid
* @param string $username
* @param string $password 未加密密码
* @return null
*/
function ldapBack($cardid,$username,$password){
$connect = ldap_connect(LDAP_HOST,LDAP_PORT);
if(!$connect){
$log = Logger::getLogger();
$log->fatal('备份LDAP连接失败!');
}
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
@$back_bind = ldap_bind($connect, LDAP_ADMIN_USER, LDAP_ADMIN_PW); $add_entry = array();
$add_entry['objectclass'][] = 'top';
$add_entry['objectclass'][] = 'person';
$add_entry['objectclass'][] = 'inetOrgPerson';
$add_entry['cn'] = $username;
$add_entry['uid'] = $cardid;
$add_entry['sn'] = $username;
$add_entry['userpassword'] = "{MD5}".base64_encode(md5($password,true));
$dn = "uid={$cardid},ou=people,dc=buct,dc=edu,dc=cn"; //查询ldap中是否已经存在相应数据
$base_dn = "DC=buct,DC=edu,DC=cn";
$filter = "(uid=$cardid)";
$read = ldap_search($connect, $base_dn, $filter);
$info = ldap_get_entries($connect, $read); if(empty($info['count']))
{//不存在数据,使用添加方法添加数据
$boo = ldap_add($connect,$dn,$add_entry);
}else
{//数据已经存在,使用编辑方法修改数据
$boo = ldap_modify($connect,$dn,$add_entry);
}
//$boo = ldap_modify($connect,$dn,$add_entry); ldap_close($connect);
$_data = array();
$_data['cardid'] = $info[0]['uid'][0];
$_data['name'] = $info[0]['sn'][0];
return $_data;
}

php ldap添加与修改的更多相关文章

  1. ExtJS 4.2 业务开发(三)数据添加和修改

    接上面的船舶管理业务,这里介绍添加和修改操作. 目录 1. 添加操作 2. 修改操作 3. 在线演示 1. 添加操作 1.1 创建AddShipWindow.js 在业务中的view目录下创建一个Ad ...

  2. MVC5 网站开发之八 栏目功能 添加、修改和删除

    本次实现栏目的浏览.添加.修改和删除. 栏目一共有三种类型. 常规栏目-可以添加子栏目,也可以添加内容模型.当不选择内容模型时,不能添加内容. 单页栏目-栏目只有一个页面,可以设置视图. 链接栏目-栏 ...

  3. TFS API:三、TFS WorkItem添加和修改、保存

    TFS API:三.TFS  WorkItem添加和修改.保存 WorkItemStore:表示跟踪与运行 Team Foundation Server的服务器的工作项客户端连接. A.添加工作项 1 ...

  4. 【记录】EF Code First 实体关联,如何添加、修改实体?

    在使用 EF Code First 的时候,我们经常会对项目中的 Entry 进行一对多.多对多的映射配置,这时候就会产生主实体和子实体的概念,我们在添加.修改他们的时候,有时候会产生一些问题,比如添 ...

  5. ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  6. PowerShell添加或修改注册表开机启动项脚本

    代码如下: $name = Read-Host "请输入开机启动项的名字(随便起)" $value = Read-Host "请输入开机启动项的值" try{ ...

  7. javascript里面的数组,json对象,动态添加,修改,删除示例

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  8. jquery attr()方法 添加,修改,获取对象的属性值。

    jquery attr()方法 添加,修改,获取对象的属性值. jquery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到 ...

  9. Jquery EasyUI的添加,修改,删除,查询等基本操作介绍

    http://www.jb51.net/article/42016.htm 初识Jquery EasyUI看了一些博主用其开发出来的项目,页面很炫,感觉功能挺强大,效果也挺不错,最近一直想系统学习一套 ...

随机推荐

  1. 解决Android 4.0以上版本中OptionsMenu菜单不显示ICON图标的问题

    在Android4.0系统中,创建菜单Menu,通过setIcon方法给菜单添加图标是无效的,图标没有显出来,2.3系统中是可以显示出来的.这个问题的根本原因在于4.0系统中,涉及到菜单的源码类 Me ...

  2. mysql优化利器之explain

    一.语法 {EXPLAIN | DESCRIBE | DESC} tbl_name [col_name | wild] {EXPLAIN | DESCRIBE | DESC} [explain_typ ...

  3. HDUOJ---4503 湫湫系列故事——植树节

    湫湫系列故事——植树节 Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  4. django和mysql

    一.在python2中使用mysql django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No mod ...

  5. 【LeetCode】131. Palindrome Partitioning

    Palindrome Partitioning Given a string s, partition s such that every substring of the partition is ...

  6. VS2005自定义ActiveX控件在asp.net中应用方法

    原文地址:http://www.cnblogs.com/zhf/archive/2009/03/02/1401299.html 开发环境为VS 2005, .NET framework 2.0 文件— ...

  7. python学习笔记——

    python线程的GIL GIL (全局解释器锁)python --- > 支持多线程 ----> 同步和互斥 --->加锁 --->解释器加锁 ————> 解释器同一时 ...

  8. Linux页面回收概述

    本文主要介绍了一些page reclaim机制中的基本概念.这份文档其实也可以看成阅读ULK第17章第一小节的一个读书笔记.虽然ULK已经读了很多遍,不过每一遍还是觉得有收获.Linux内核虽然不断在 ...

  9. Spring注解运行时抛出null

    关于Spring的注解其实不难,大致需要以下几个流程: 一.配置Spring的注解支持 <?xml version="1.0" encoding="UTF-8&qu ...

  10. 关于PFM工作模式的一些资料总结

    一.PFM模式 为什么升压中用的多呢(http://bbs.eetop.cn/thread-357181-1-1.html) 1.PFM 对于Boost Converter来说可以把PWM固有的右半平 ...