如何知道ldap_mod_replace值错误的原因?

时间:2018-06-20 09:06:19

标签: php ldap openldap

我使用的是 PhpLdapPassword 0.5-1版本。一切正常,但是有一天无法在此处更改密码。当我打开 ldappasswd / index.php 页并输入登录名,旧密码和新密码时,它显示:

Fatal Error: Unable to change password.

同时 ldappasswd / reset.php 页面可以正常工作。

问题是我不知道确切的功能何时终止,因为我和用户并不是每天都在使用它。这就是为什么我无法说出问题发生之前服务器上所做的更改的原因。

我尝试使用 -d 参数启动拍击,并检查 / var / log / messages 文件。这没有帮助。

我看到了消息来源,看来 ldap_mod_replace 返回 false 。但是我怎么知道原因呢?在哪里有日志?

php-5.3.3-46 安装在服务器上。

已更新

我在(strong)第(a)行之后在 ldappasswd / reset.php 文件中将以下(b)行添加到 phpldappasswd / index.php 中。

a)

// Check the current password.
if (!($ldapbind = @ldap_bind($ds, $dn, $oldpass))) {
    if ($PARANOID) {
            display_template($TEMPLATE_CHANGEPASS, "You gave an incorrect user ID and/or current password");
    }
    display_template($TEMPLATE_CHANGEPASS, "You gave an incorrect current password");
 }

b)

if (!($mail = get_value($ds, $dn, $MAILATTRIBUTE, $LDAPBINDDN, 
$LDAPBINDPASSWORD))) {
}

可以,但是我无法解释这种行为。

0 个答案:

没有答案