PHP LDAP_Mod_Replace

时间:2015-09-18 07:38:13

标签: php ldap

我尝试使用函数ldap_mod_replace通过PHP接口更改LDAP用户的密码。我现在正在尝试的是,我有一个窗口,我有2个文本字段密码和密码重复。通过单击保存按钮,将执行功能保存。但现在有些事情不能正常工作,我不知道为什么......我不需要对密码进行编码。

这是changeuser

require_once("define/config.php");

$ds = ldap_connect(LDAP_IP);
$ldap_user  = LDAP_USR;
$ldap_pass = LDAP_PASS;
$dn ="cn=" . $_GET['u'] . ",ou=Users," . LDAP_BASE;
$r = ldap_bind($ds, $ldap_user, $ldap_pass);

if (isset($_POST['save'])) {
    echo "save";
    save();
} elseif (isset($_POST['back'])) {
    back();
}

function save()
{
    echo "0";

    $newPassword = $_POST['newPassword'];
    $repeatNewPasword = $_POST['repeatNewPasword'];
    $userdata = array('Users' => $newPassword);

    if ($repeatNewPasword == $newPassword) {
        ldap_mod_replace ($ds, $dn, $userdata);
        echo "Sucess, $ds, $dn, $userdata";
    } else {
        echo "Passwords are different";
    }
}

function back()
{
   echo "back";
}

1 个答案:

答案 0 :(得分:0)

一些事情:

  • 您无法在$ds函数
  • 中使用变量$dnsave()
  • 你的$useradata数组当然不应该使用'Users'作为密钥,而是使用密码字段的名称
  • 通过ldap更改密码取决于您的实施 - 请参阅http://www.openldap.org/faq/data/cache/347.html
  • 非常重要:请执行某种错误检查 - ldap_mod_replae等返回什么值?有没有任何PHP警告/通知?你使用ldap_last_error()吗?