«Нежелание выполнять» означает «Я не могу делать то, что вы меня просите». Это всегда означает, что вы сделали что-то не так. В этом случае может быть несколько вещей.
Чтобы иметь возможность изменить пароль, соединение должно быть безопасным, что можно сделать с помощью LDAPS (LDAP через SSL). Я вижу s
в $ldaps_url
, но ваш пример использования IP-адреса рядом не работает. Во-первых, ему должен предшествовать ldaps://
, но также IP-адрес просто не работает для SSL. Имя домена, которое вы используете для подключения, должно совпадать с именем домена в сертификате SSL, который вам отправляет сервер, а сертификаты не имеют IP-адресов.
Таким образом, эта строка должна выглядеть примерно так:
$ldaps_url = "ldaps://example.com";
Или это тоже может быть формат пароля. Похоже, вы взяли код из комментариев в документации ldap_mod_replace()
для форматирования пароля, но я думаю, что в документации для ldap_modify_batch()
есть гораздо более простой пример:
function adifyPw($pw)
{
return iconv("UTF-8", "UTF-16LE", '"' . $pw . '"');
}
Это означает, что вы можете изменить свою функцию pwd_encryption
на это:
function pwd_encryption( $newPassword ) {
$userdata["unicodePwd"] = iconv("UTF-8", "UTF-16LE", '"' . $newPassword . '"');
return $userdata;
}