LDAP_add с PHP: ошибка операций - PullRequest
3 голосов
/ 17 мая 2011

Я довольно нубист в использовании LDAP (это на самом деле мой первый проект), и я не могу найти ответ на Google, который может мне помочь ... Итак, моя проблема: я пытаюсь добавить контакт с php в активный каталог на сервере Windows 2003. Я могу подключиться к серверу, и у меня нет проблем с ldap_bind. Но когда я запускаю программу, я всегда получаю сообщение об ошибке:

Предупреждение: ldap_add () [function.ldap-add]: Add: Ошибка операций в (Blabla) в строке bla

и ldap_error также только говорит "Ошибка операций" что довольно расплывчато, поэтому я даже не знаю, проблема ли это в сервере или в моем коде. Я видел некоторые потоки с похожими проблемами, когда серверы не разрешали анонимный доступ, но я даже связывался с учетной записью администратора, и она все еще не работает.

Мой код выглядит примерно так:

$ldapcon=ldap_connect("servername");

if($ldapcon) {
    $bind=ldap_bind($ldapcon,"Admin@domain.com", "somePassword");
    if($bind) {         
        //  create data...
        $info=array();
        $info["cn"][0]          = "Hans Mustermann";
        $info["sn"][0]          = "Mustermann";
        $info["givenName"][0]   = "Hans";
        $info["mail"][0]        = "MustermannH@firma.de";
        $info["objectclass"][0] = "top";
        $info["objectclass"][1] = "person";
        $info["objectclass"][2] = "organizationalPerson";
        $info["objectclass"][3] = "contact";
        $info["ou"][0]          = "Users";
        $info["ou"][1]          = "contact";

        // add Data...
        $r=ldap_add($ldapcon, "cn=Hans Mustermann, sn=Mustermann", $info)
            or die(ldap_error($ldapcon)); //error: operations error
    }
}

Не хватает ли какой-то информации? код неправильный? нужно ли внести некоторые изменения в настройки рекламы? это проблема с "настройкой удаленных прав" или как? Я слишком глуп и слеп, чтобы увидеть проблему, или это большая проблема, которую нелегко исправить? У кого-нибудь из вас есть идея?

Большое спасибо Chillikarli

1 Ответ

0 голосов
/ 17 мая 2011

Вместо условия or die () вы можете попробовать это

// add Data...
if(!(ldap_add($ldapcon, "cn=Hans Mustermann, sn=Mustermann", $info))) {
     echo "There is a problem to create the account\n";
     echo "Please contact your administrator !\n";
     echo "LDAP Error: ".ldap_error($ldapcon)."\n";
     exit;
}
ldap_unbind($ldapcon);
...