Обновление пользовательских полей в Active Directory с помощью ldap_mod_replace

Я пытаюсь обновить мобильное поле для пользователя в Active Directory, но получаю следующую ошибку. Я пытался решить это часами. Это наверное что-то простое.

Предупреждение: ldap_mod_replace (): Изменить: Неверный синтаксис в
/var/www/php_builders/admin/user_update/user_update_action.php на линии
183

Когда я вывожу массив, появится номер мобильного телефона. это не пусто.

ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
$adconn = ldap_connect("ldap://earth.example.com") or die("Couldn't connect to AD!");
$set = ldap_set_option($adconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_get_option($adconn, LDAP_OPT_PROTOCOL_VERSION, $value);
$DN = 'CN=itcoopadmin,CN=Users,DC=example,DC=com';
$ldap_bind = ldap_bind($adconn, $DN, "**********");
$dn = trim($_POST['dn']);
$mobile = trim($_POST['mobile']);

if(!empty($mobile)) {
$AD_mobile = AD_format($mobile);
$DB_mobile = DB_format($mobile);
$attributes['mobile'] = $AD_mobile;
} else {
$DELETEattrs["mobile"] = array();
$DELETEattrs = array();
}$replace=ldap_mod_replace($adconn, $dn, $attributes); // Line 183, where the error is getting triggered

$disconnect = ldap_unbind($adconn);

1

Решение

AFAIK атрибут должен быть задан как массив. Поэтому я бы посоветовал вам попробовать это:

$attributes['mobile'] = array($AD_mobile);

надеюсь, это поможет

0

Другие решения

Если кто-то все еще ищет, попробуйте:

$attributes['mobile'][0] = $AD_mobile;
-1

По вопросам рекламы [email protected]