php怎么改账号密码,php 实现修改 ldap 账号密码

这是一个关于使用PHP进行LDAP(轻量级目录访问协议)连接、验证用户旧密码并更新新密码的代码示例。函数ChangePass()首先检查输入,然后连接到 LDAP 服务器,验证管理员身份,搜索指定账户,比较旧密码,并在验证成功后更新用户密码。
摘要由CSDN通过智能技术生成

表单页面 ldap.html

帐号名:

旧密码:

新密码:

Again:

处理逻辑ldap.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 "重新修改"

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值