Предупреждение: ldap_mod_replace (): Изменить: нарушение класса объекта - PullRequest
0 голосов
/ 04 мая 2020

У меня проблема, когда я пытаюсь что-то отредактировать (в данном случае поле [mail]) в моем ldap. Ошибка: Предупреждение: ldap_mod_replace (): Изменить: Нарушение класса объекта

здесь мой код:

<?php
set_time_limit(30);
error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
ini_set('display_errors',1);

// config
$ldapserver = '10.32.32.100';
$ldapport = '60389';
$ldapuser      = 'uid=pablo.ghisolfi,ou=staff,ou=people,ou=data,DC=something-education,DC=com'; 
$ldappass     = '1234.abcd';
$ldaptree    = "dc=something-education,dc=com";

// connect
$ldapconn = ldap_connect($ldapserver,$ldapport) or die("Could not connect to LDAP server.");

if($ldapconn) {
    // binding to ldap server
    $ldapbind = ldap_bind($ldapconn, $ldapuser, $ldappass) or die ("Error trying to bind: ".ldap_error($ldapconn));
    // verify binding
    if ($ldapbind) {
        echo "LDAP bind successful...<br /><br />";


        $result = ldap_search($ldapconn,$ldaptree, "(employeeNumber=1234567890)") or die ("Error in search query: ".ldap_error($ldapconn));
        $data = ldap_get_entries($ldapconn, $result);

        // iterate over array and print data for each entry
        echo '<h1>Show me the users</h1>';
        for ($i=0; $i<$data["count"]; $i++) {
            //echo "dn is: ". $data[$i]["dn"] ."<br />";
            echo "cn: ". $data[$i]["cn"][0] ."<br />";
            if(isset($data[$i]["sn"][0])) {
                echo "sn: ". $data[$i]["sn"][0] ."<br />";
            } else {
                echo "sn: None<br /><br />";
            }

            if(isset($data[$i]["description"][0])) {
                echo "description: ". $data[$i]["description"][0] ."<br /><br />";
            } else {
                echo "description: None<br /><br />";
            }
        }
        // print number of entries found
        echo "Number of entries found: " . ldap_count_entries($ldapconn, $result);
    } else {
        echo "LDAP bind failed...";
    }

}


$entry[mail] = "pablo.ghisolfi@something.comqqqqqqqqq";
  $results = ldap_mod_replace($ldapconn, "ou=staff, ou=people, ou=data, dc=something-education, dc=com", $entry);


// all done? clean up
ldap_close($ldapconn);
?>

Он привязывается к ldap: привязка LDAP успешно ... Показывает искомого пользователя: cn , sn, description В конце отображается предупреждение: Предупреждение: ldap_mod_replace (): Изменить: Нарушение класса объекта

Я очень благодарен, если кто-то может помочь мне найти решение.

1 Ответ

0 голосов
/ 06 мая 2020

Вы пытаетесь изменить атрибут почты в записи «ou = staff», которая является OrganizationalUnit. Такой объектный класс не позволяет использовать атрибут «почта». Таким образом, попытка добавить это нарушение схемы и, в частности, атрибутов класса объекта,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...