【发布时间】:2015-04-23 17:25:18
【问题描述】:
我正在尝试为 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);
【问题讨论】:
-
您的用户是否已经存在移动字段?如果没有,你需要做
ldap_mod_add。 -
移动字段已经存在
-
我建议您输入
if($ldap_bind){...},然后确保问题不存在 -
这似乎没有任何区别:(
-
我唯一剩下的东西...我们有
$replace = ldap_mod_replace($con, "uid=$uid ou=people...", $attr);我想知道在设置时是否有问题以这种方式传递dn?如果您的组织没有太多不同的ou,也许这对你们有用?此外,我们将它用于 RHEL,也可能会有所作为。
标签: php ldap ldap-query