php 实现修改 ldap 账号密码

表单页面 ldap.html

<html>
<body>

<form action="ldap.php" method="post">
帐号名: <input type="text" name="acc_name"><br>
旧密码: <input type="text" name="old_pass"><br>
新密码: <input type="text" name="new_pass"><br>
 Again: <input type="text" name="new_pass1"><br>
<input type="submit">
</form>

</body>
</html>

处理逻辑ldap.php

<html>
<body>

 <?php 
 
	function ChangePass() {
		$acc_name = $_POST["acc_name"];
		$old_pass = $_POST["old_pass"];
		$new_pass = $_POST["new_pass"];
		$new_pass1 = $_POST["new_pass1"];
		if (!$old_pass) {
			return "请输入旧密码。";
		}
		if (!$new_pass || !$new_pass1) {
			return "请输入新密码。";
		}
		if ($new_pass != $new_pass1) {
			return "新前后密码不一致!!!";
		}
		$ldap_conn = ldap_connect("ldap://192.168.1.14:389");
		if (!$ldap_conn) {
			return "服务器连接失败!!!";
		}
		ldap_set_option($ldap_conn, LDAP_OPT_PROTOCOL_VERSION, 3);
		$bind = ldap_bind($ldap_conn, "cn=admin,dc=xidea,dc=com", "jcd520");
		if (!$bind) {
			return "error";
		}
		$dn = "ou=people,dc=xidea,dc=com";
		$res = ldap_search($ldap_conn, $dn, "(uid=".$acc_name.")");
		if (!$res) {
			return "账号不存在1";
		}
		$entry = ldap_first_entry($ldap_conn, $res);
		if (!$entry) {
			return "账号不存在";
		}
		$attrs = ldap_get_attributes ( $ldap_conn, $entry);
		$db_pass1 = $attrs['userPassword'][0];
		$db_pass2 = '{SHA}' . base64_encode(pack('H*', sha1($old_pass)));
		if ($db_pass1 != $db_pass2) {
			return "密码错误";
		}
		return "suc";
		$user_dn = ldap_get_dn($ldap_conn, $entry);
		$new["userPassword"] = '{SHA}' . base64_encode(pack('H*', sha1($new_pass)));
		ldap_modify($ldap_conn, $user_dn, $new);
		ldap_close($ldap_conn);
	}
	echo ChangePass();
	echo "<a href=\"ldap.html\">重新修改</a>" 
 ?>
</body>
</html>

 

转载于:https://my.oschina.net/guqiwei/blog/789947

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值